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); }

사용자 서식 MMM 사용하기.

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/

반응형

+ Recent posts