문자열을 시간으로 변환
저는 16:23:01 시간이 있습니다.사용해 보았습니다.DateTime.ParseExact
, 작동이 안 돼요.
여기 내 코드가 있습니다.
string Time = "16:23:01";
DateTime date = DateTime.ParseExact(Time, "hh:mm:ss tt", System.Globalization.CultureInfo.CurrentCulture);
lblClock.Text = date.ToString();
라벨에 오후 04:23:01로 표시해주셨으면 합니다.
"16:23:01"은 "hh:mm:sstt"의 패턴과 일치하지 않습니다. 오전/오후 지정기가 없고, 16은 분명히 12시간 시계에 있지 않습니다.파싱 부분에서 해당 형식을 지정하고 있으므로 기존 데이터의 형식과 일치시켜야 합니다.원하는 항목:
DateTime dateTime = DateTime.ParseExact(time, "HH:mm:ss",
CultureInfo.InvariantCulture);
(현재의 문화가 아닌 불변의 문화에 주목하십시오. 입력한 내용이 항상 콜론을 사용한다고 가정합니다.)
포맷을 원하는 경우hh:mm:ss tt
, 그 부분을 넣어주셔야 합니다.ToString
호출:
lblClock.Text = date.ToString("hh:mm:ss tt", CultureInfo.CurrentCulture);
아니면 더 나은(better yet)(IMO)은 "문화를 위한 긴 패턴이 무엇이든"을 사용합니다.
lblClock.Text = date.ToString("T", CultureInfo.CurrentCulture);
참고할 점은hh
일반적으로 10보다 작은 숫자는 0-좌측 패드를 사용하지 않습니다.
(또한 Noda Time API를 사용하는 것도 고려해 보시기 바랍니다.LocalTime
type - "하루 중의 시간"에 더 적합한 일치).
string Time = "16:23:01";
DateTime date = DateTime.Parse(Time, System.Globalization.CultureInfo.CurrentCulture);
string t = date.ToString("HH:mm:ss tt");
이를 통해 필요한 결과를 얻을 수 있습니다.
string time = "16:23:01";
var result = Convert.ToDateTime(time);
string test = result.ToString("hh:mm:ss tt", CultureInfo.CurrentCulture);
//This gives you "04:23:01 PM" string
사용할 수도 있습니다.CultureInfo.CreateSpecificCulture("en-US")
모든 문화가 AM/PM을 표시하는 것은 아니기 때문입니다.
허용된 솔루션은 에지 케이스를 포함하지 않습니다.저는 4KB 스크립트로 이것을 할 방법을 찾았습니다.입력을 처리하고 데이터를 변환합니다.
예:
00:00:00 -> 00:00:00
12:01 -> 12:01:00
12 -> 12:00:00
25 -> 00:00:00
12:60:60 -> 12:00:00
1dg46 -> 14:06
당신은 그 생각을...https://github.com/alekspetrov/time-input-js 에서 확인해보세요.
언급URL : https://stackoverflow.com/questions/18919530/convert-string-to-time
'programing' 카테고리의 다른 글
테이블이 마음에 드는 내 SQL 대량 드롭 테이블? (0) | 2023.09.14 |
---|---|
jQuery나 JavaScript에서 "$" 기호의 의미는 무엇입니까? (0) | 2023.09.14 |
열의 개수 (0) | 2023.09.14 |
워드프레스 - meta_query와 tax_query를 함께 사용? (0) | 2023.09.14 |
Mac용 좋은 CIDE? (0) | 2023.09.14 |