내보내기(0) 인쇄
모두 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

DateTime.TryParseExact 메서드 (String, String[], IFormatProvider, DateTimeStyles, DateTime)

지정된 형식 배열, 문화권별 형식 정보 및 스타일을 사용하여 지정된 날짜와 시간의 문자열 표현을 해당 DateTime 표현으로 변환합니다. 문자열 표현 형식은 지정된 형식과 정확히 일치해야 합니다. 이 메서드는 변환이 성공했는지 아니면 실패했는지를 나타내는 값을 반환합니다.

네임스페이스:  System
어셈블리:  mscorlib(mscorlib.dll)

public static bool TryParseExact(
	string s,
	string[] formats,
	IFormatProvider provider,
	DateTimeStyles style,
	out DateTime result
)

매개 변수

s
형식: System.String
변환할 날짜 및 시간이 포함된 문자열입니다.
formats
형식: System.String[]
s에 허용되는 형식의 배열입니다. 자세한 내용은 설명 부분을 참조하십시오.
provider
형식: System.IFormatProvider
s에 대한 문화권별 형식 지정 정보를 제공하는 개체입니다.
style
형식: System.Globalization.DateTimeStyles
s에 사용할 수 있는 형식을 나타내는 열거형 값의 비트 조합입니다. 지정할 일반적인 값은 DateTimeStyles.None입니다.
result
형식: System.DateTime
이 메서드는 변환이 성공한 경우 s에 포함된 날짜와 시간에 해당하는 DateTime 값을 반환하고, 변환이 실패한 경우 MinValue를 반환합니다. s 또는 formatsnull이거나, s 또는 formats의 요소가 빈 문자열이거나, s의 형식이 formats에 있는 형식 패턴 중 최소한 하나 이상에 의해 정확하게 지정되지 않은 경우 변환이 실패합니다. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.

반환 값

형식: System.Boolean
s 매개 변수가 변환되면 true이고, 그렇지 않으면 false입니다.

예외조건
ArgumentException

styles은(는) 올바른 DateTimeStyles 값이 아닙니다.

또는

styles에 잘못된 DateTimeStyles 값 조합이 포함된 경우(예: AssumeLocalAssumeUniversal)

DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) 메서드는 formats 매개 변수에 할당된 패턴 중 하나와 일치하는 날짜의 문자열 표현을 구문 분석합니다. TryParseExact 메서드는 DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) 메서드와 비슷하지만 변환이 실패할 경우 예외를 throw하지 않습니다.

s 매개 변수에는 구문 분석할 날짜와 시간이 들어 있습니다. s 매개 변수에 시간만 포함되고 날짜가 포함되지 않은 경우 style 매개 변수에 DateTimeStyles.NoCurrentDateDefault 플래그가 없으면 현재 날짜가 사용되며 이 경우 기본 날짜(DateTime.Date.MinValue)가 사용됩니다. s 매개 변수에 날짜만 포함되고 시간이 포함되지 않으면 자정(00:00:00)이 사용됩니다. style 매개 변수는 formats의 형식 문자열 중 하나에서 허용하는 문자 외에 선행, 내부 또는 후행 공백 문자를 s 매개 변수에 포함할 수 있는지 여부를 결정합니다.

s에 표준 시간대 정보가 없으면 반환되는 DateTime 개체의 Kind 속성은 DateTimeKind.Unspecified입니다. Kind 속성이 DateTimeKind.LocalDateTime 값을 반환하는 DateTimeStyles.AssumeLocal 플래그를 사용하거나 Kind 속성이 DateTimeKind.UtcDateTime 값을 반환하는 DateTimeStyles.AssumeUniversalDateTimeStyles.AdjustToUniversal 플래그를 사용하여 이 동작을 변경할 수 있습니다. s에 표준 시간대 정보가 포함되어 있으면 필요한 경우 시간이 현지 시간으로 변환되며 반환되는 DateTime 개체의 Kind 속성이 DateTimeKind.Local로 설정됩니다. DateTimeStyles.RoundtripKind 플래그를 사용하여 UTC(협정 세계시)를 현지 시간으로 변환하지 않고 Kind 속성을 DateTimeKind.Utc로 설정하여 이 동작을 변경할 수 있습니다.

formats 매개 변수에는 패턴 배열이 포함되어 있으며 구문 분석 작업이 성공하려면 이 s 중 하나가 정확하게 일치해야 합니다. formats 매개 변수의 패턴은 사용자 지정 날짜 및 시간 형식 문자열 표에 나오는 하나 이상의 사용자 지정 형식 지정자와 표준 날짜 및 시간 서식 문자열 표에 나오는 미리 정의된 패턴을 식별하는 단일 표준 형식 지정자로 구성되어 있습니다.

사용자 지정 형식 패턴에 날짜나 시간 구분 기호를 사용하지 않는 경우 provider 매개 변수의 고정 문화권과 각 사용자 지정 형식 지정자의 가장 넓은 형식을 사용합니다. 예를 들어, 패턴에 시간을 지정하려면 짧은 형식 "H" 대신 긴 형식 "HH"를 지정합니다.

특정 언어의 요일 이름과 같이 s에 사용되는 특정 날짜 및 시간 기호와 문자열은 provider 매개 변수를 통해 정의됩니다. 이는 format이 표준 형식 지정자 문자열일 때 s의 정확한 형식을 정의하는 경우와 같습니다. provider 매개 변수는 다음 중 하나일 수 있습니다.

providernull이면 현재 문화권에 해당하는 CultureInfo 개체가 사용됩니다.

styles 매개 변수에는 format에 정의되지 않은 공백을 s에 표시할지 여부 및 표시 위치를 결정하고 구문 분석 작업의 정확한 동작을 제어하는 하나 이상의 DateTimeStyles 열거형 멤버가 포함되어 있습니다. 다음 표에서는 DateTimeStyles 열거형의 각 멤버가 TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) 메서드의 작업에 영향을 주는 방식을 설명합니다.

DateTimeStyles 멤버

설명

AdjustToUniversal

s를 구문 분석하고 필요한 경우 UTC로 변환합니다. s에 표준 시간대 오프셋이 포함된 경우 또는 s에 표준 시간대 정보가 없지만 stylesDateTimeStyles.AssumeLocal 플래그가 포함된 경우, 메서드에서는 문자열을 구문 분석한 다음 ToUniversalTime을 호출하여 반환된 DateTime 값을 UTC로 변환하고 Kind 속성을 DateTimeKind.Utc로 설정합니다. s가 UTC를 나타내는 것으로 지정되어 있거나 s에는 표준 시간대 정보가 들어 있지 않지만 stylesDateTimeStyles.AssumeUniversal 플래그가 포함된 경우 이 메서드는 문자열을 구문 분석하고, 반환된 DateTime 값에 대해 표준 시간대 변환을 수행하지 않고, Kind 속성을 DateTimeKind.Utc로 설정합니다. 다른 모든 경우에는 이 플래그에 효과가 없습니다.

AllowInnerWhite

format에 정의되지 않은 공백이 개별 날짜나 시간 요소 사이에 나타날 수 있도록 지정합니다.

AllowLeadingWhite

format에 정의되지 않은 공백이 s의 시작 부분에 나타날 수 있도록 지정합니다.

AllowTrailingWhite

format에 정의되지 않은 공백이 s의 끝 부분에 나타날 수 있도록 지정합니다.

AllowWhiteSpaces

format에 정의되지 않은 선행, 내부 및 후행 공백이 s에 포함될 수 있도록 지정합니다.

AssumeLocal

s에 표준 시간대 정보가 없으면 현지 시간을 나타내는 것으로 간주하도록 지정합니다. DateTimeStyles.AdjustToUniversal 플래그가 없으면 반환된 DateTime 값의 Kind 속성이 DateTimeKind.Local로 설정됩니다.

AssumeUniversal

s에 표준 시간대 정보가 없으면 UTC를 나타내는 것으로 간주하도록 지정합니다. DateTimeStyles.AdjustToUniversal 플래그가 없으면 메서드에서 반환된 DateTime 값을 UTC에서 현지 시간으로 변환하고 Kind 속성을 DateTimeKind.Local로 설정합니다.

NoCurrentDateDefault

s에 날짜 정보 없이 시간이 들어 있으면 반환 값의 날짜는 DateTime.MinValue.Date로 설정됩니다.

None

s 매개 변수는 기본값을 사용하여 구문 분석됩니다. format에 없는 공백은 허용되지 않습니다. s에 날짜 구성 요소가 없으면 반환되는 DateTime 값의 날짜가 1/1/0001로 설정됩니다. s에 표준 시간대 정보가 없으면 반환되는 DateTime 개체의 Kind 속성은 DateTimeKind.Unspecified로 설정됩니다. s에 표준 시간대 정보가 있으면 시간이 현지 시간으로 변환되며 반환되는 DateTime 개체의 Kind 속성이 DateTimeKind.Local로 설정됩니다.

RoundtripKind

문자열에 표준 시간대 정보가 들어 있는 경우 Kind 속성을 DateTimeKind.Local로 설정하여 DateTime 값으로 변환되지 않도록 합니다. 이 플래그는 주로 UTC 시간이 현지 시간으로 변환되지 않도록 하는 데 사용됩니다.

호출자 참고 사항

.NET Framework 4에서는, 구문 분석할 문자열이 서로 일치하지 않는 시간 구성 요소와 AM/PM 지정자를 포함할 경우 TryParseExact 메서드가 false를 반환합니다. .NET Framework 3.5 및 이전 버전에서는 AM/PM 지정자가 무시됩니다.

다음 예제에서는 DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) 메서드를 사용하여 가능한 여러 형식의 문자열을 성공적으로 구문 분석할 수 있는지 확인합니다.


string[] formats= {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", 
                   "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", 
                   "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", 
                   "M/d/yyyy h:mm", "M/d/yyyy h:mm", 
                   "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"};
string[] dateStrings = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM", 
                        "5/1/2009 6:32:00", "05/01/2009 06:32", 
                        "05/01/2009 06:32:00 PM", "05/01/2009 06:32:00"}; 
DateTime dateValue;

foreach (string dateString in dateStrings)
{
   if (DateTime.TryParseExact(dateString, formats, 
                              new CultureInfo("en-US"), 
                              DateTimeStyles.None, 
                              out dateValue))
      Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue);
   else
      Console.WriteLine("Unable to convert '{0}' to a date.", dateString);
}
// The example displays the following output:
//       Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
//       Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.


.NET Framework

4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

이식 가능한 클래스 라이브러리

이식 가능한 클래스 라이브러리에서 지원

Windows 스토어 앱용 .NET

Windows 8에서 지원

Windows Phone 앱용 .NET

Windows Phone 8, Silverlight 8.1에서 지원

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

커뮤니티 추가 항목

추가
표시:
© 2015 Microsoft