Section 19.11: DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) 메소드
날짜 및 시간을 나타내는 문자열을 특정 서식 및 문화권 설정 서식 정보와 스타일 값을 사용하여 DateTime
에 해당하는 객체로 변환시킨다. 파라미터로 사용될 서식 정보는 문자열에 나타난 서식 정보와 정확하게 일치하여야 한다. 메소드의 반환값은 변환이 성공적으로 이루어졌는지를 나타낸다.
예제:
CultureInfo enUS = new CultureInfo("en-US");
string dateString;
System.DateTime dateValue;
스타일 설정 없이 날짜를 파싱하기.
dateString = " 5/01/2009 8:30 AM";
if (DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.None, out dateValue)) {
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
} else {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
// 날짜 문자열 앞의 공백 문자를 허용한다.
if (DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite, out dateValue)) {
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
} else {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
사용자 서식 M
및 MM
사용하기.
dateString = "5/01/2009 09:00";
if (DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None, out dateValue)) {
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
} else {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
// MM 형식으로 동일한 문자열 파싱을 시도한다.
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, DateTimeStyles.None, out dateValue)) {
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
} else {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
시간대 정보를 포함하는 문자열 파싱하기.
dateString = "05/01/2009 01:30:42 PM -05:00";
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.None, out dateValue)) {
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
} else {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
// UTC (협정 세계시) 결과를 반환한다.
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS,
DateTimeStyles.AdjustToUniversal, out dateValue)) {
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
} else {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
UTC 형식의 문자열 파싱하기.
dateString = "2008-06-11T16:11:20.0904778Z";
if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateValue)) {
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
} else {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture,
DateTimeStyles.RoundtripKind, out dateValue)) {
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
} else {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
출력 결과
' 5/01/2009 8:30 AM' is not in an acceptable format.
Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
'5/01/2009 09:00' is not in an acceptable format.
Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Local).
Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Local).
Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
'번역 > C# Notes for Professionals' 카테고리의 다른 글
19.13: 문화권 정보를 이용하여 Parse 및 TryParse 메소드 사용하기 (0) | 2021.03.25 |
---|---|
19.12: DateTime.Add(TimeSpan) 메소드 (0) | 2021.03.25 |
19.10: DateTime 사용 시의 순수 함수 관련 유의 사항 (0) | 2021.03.19 |
19.9: DateTime.AddYears(Int32) 메소드 (0) | 2021.03.18 |
19.8: DateTime.DaysInMonth(Int32, Int32) 메소드 (0) | 2021.03.18 |