다음을 통해 공유


System.DateTime.TryParse 메서드

이 문서는 이 API에 대한 참조 설명서를 보충하는 추가 설명을 제공합니다.

이 메서드는 DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) 날짜, 시간 및 표준 시간대 정보를 포함할 수 있는 문자열을 구문 분석합니다. 메서드는 변환이 실패할 경우 예외를 발생시키지 않는다는 점에서 DateTime.Parse(String, IFormatProvider, DateTimeStyles) 메서드와 비슷하지만, DateTime.TryParse(String, DateTime) 메서드와 차이가 있습니다.

이 메서드는 인식할 수 없는 데이터를 무시하고 입력 문자열(s)을 완전히 구문 분석하려고 시도합니다. 시간이 포함되지만 날짜가 없는 경우 s 메서드는 기본적으로 현재 날짜를 대체하거나 플래그를 styles 포함하는 경우 NoCurrentDateDefault 대체합니다DateTime.Date.MinValue. 날짜가 포함되어 있지만 시간이 없는 경우 s 12:00 자정이 기본 시간으로 사용됩니다. 날짜가 있지만 해당 연도 구성 요소가 두 자리 숫자로만 구성된 경우 속성 값 provider 에 따라 매개 변수의 현재 달력에서 Calendar.TwoDigitYearMax 1년으로 변환됩니다. 선행, 내부 또는 후행 공백 문자는 s에서 무시됩니다. 날짜와 시간은 선행 및 후행 NUMBER SIGN 문자 쌍('#', U+0023)으로 괄호로 묶을 수 있으며 하나 이상의 NULL 문자(U+0000)로 후행할 수 있습니다.

날짜 및 시간 요소에 대한 특정 유효한 형식과 날짜 및 시간에 사용되는 이름과 기호는 매개 변수에 의해 provider 정의되며 다음 중 하나로 정의될 수 있습니다.

providernull인 경우, 현재 문화권이 적용됩니다.

s가 현재 달력에서 윤년의 윤일을 문자열로 표현한 경우, 메서드가 s을 성공적으로 구문 분석합니다. 현재 달력s에서 윤년이 아닌 연도의 윤일 문자열 표현인 경우 provider 구문 분석 작업이 실패하고 메서드가 false를 반환합니다.

매개 변수는 styles 구문 분석된 문자열의 정확한 해석과 구문 분석 작업에서 처리해야 하는 방법을 정의합니다. 다음 표에 설명된 대로 열거형의 DateTimeStyles 하나 이상의 멤버일 수 있습니다.

DateTimeStyles 멤버 설명
AdjustToUniversal s 구문 분석하고 필요한 경우 UTC로 변환합니다. s에 표준 시간대 오프셋이 포함되어 있거나 s에 표준 시간대 정보가 없지만 stylesDateTimeStyles.AssumeLocal 플래그를 포함하고 있는 경우, 이 메서드는 문자열을 구문 분석하고 ToUniversalTime을 호출하여 반환된 DateTime 값을 UTC로 변환하며, Kind 속성을 DateTimeKind.Utc로 설정합니다. s이 UTC를 나타내거나 s에 표준 시간대 정보가 없고 stylesDateTimeStyles.AssumeUniversal 플래그가 포함되어 있는 경우, 메서드는 문자열을 구문 분석하고 반환된 DateTime 값에 대해 표준 시간대 변환을 수행하지 않으며 Kind 속성을 DateTimeKind.Utc로 설정합니다. 다른 모든 경우에서는 플래그가 적용되지 않습니다.
AllowInnerWhite 유효하지만 이 값은 무시됩니다. 날짜 및 시간 요소 s의 내부 공백이 허용됩니다.
AllowLeadingWhite 유효하지만 이 값은 무시됩니다. s의 날짜 및 시간 요소에는 선행 공백이 허용됩니다.
AllowTrailingWhite 유효하지만 이 값은 무시됩니다. 날짜 및 시간 요소인 s에서 후행 공백이 허용됩니다.
AllowWhiteSpaces s에 선행, 내부 및 후행 공백이 포함될 수 있음을 명시합니다. 이 옵션은 기본 동작입니다. 와 같은 DateTimeStyles보다 제한적인 DateTimeStyles.None 열거형 값을 제공하여 재정의할 수 없습니다.
AssumeLocal 표준 시간대 정보가 없는 경우 s 현지 시간을 나타내는 것으로 간주되도록 지정합니다. DateTimeStyles.AdjustToUniversal 플래그가 존재하지 않는 경우 반환된 Kind 값의 DateTime 속성은 DateTimeKind.Local으로 설정됩니다.
AssumeUniversal 표준 시간대 정보가 없는 경우 s UTC를 나타내는 것으로 간주되도록 지정합니다. 플래그가 DateTimeStyles.AdjustToUniversal 없는 한 메서드는 반환 DateTime 된 값을 UTC에서 현지 시간으로 변환하고 해당 Kind 속성을 DateTimeKind.Local.로 설정합니다.
None 유효하지만 이 값은 무시됩니다.
RoundtripKind 표준 시간대 정보를 포함하는 문자열의 경우, 날짜 및 시간 문자열을 DateTime 값으로, Kind 속성이 DateTimeKind.Local로 설정된 상태로 변환하지 않도록 시도합니다. 일반적으로 이러한 문자열은 "o", "r" 또는 "u" 표준 형식 지정자를 사용하여 메서드를 호출 DateTime.ToString(String) 하여 생성됩니다.

s에 표준 시간대 정보가 포함되지 않은 경우, DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) 메서드는 플래그 DateTime가 그렇지 않음을 나타내지 않는 한 Kind 속성이 DateTimeKind.Unspecifiedstyles 값을 반환합니다. 표준 시간대 또는 표준 시간대 오프셋 정보가 포함된 경우 s 메서드는 DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) 필요한 시간 변환을 수행하고 다음 중 하나를 반환합니다.

이 동작은 DateTimeStyles.RoundtripKind 플래그를 사용하여 재정의할 수 있습니다.

사용자 지정 문화권 구문 분석

사용자 지정 문화권에 대해 생성된 날짜 및 시간 문자열을 구문 분석하는 경우 TryParseExact 메서드를 사용하여 TryParse 메서드 대신 구문 분석 작업이 성공할 가능성을 높입니다. 사용자 지정 문화권 날짜 및 시간 문자열은 복잡하고 구문 분석하기 어려울 수 있습니다. 이 메서드는 TryParse 여러 암시적 구문 분석 패턴으로 문자열을 구문 분석하려고 시도하며 모두 실패할 수 있습니다. 반면, 메서드를 TryParseExact 사용하려면 성공할 가능성이 있는 하나 이상의 정확한 구문 분석 패턴을 명시적으로 지정해야 합니다.

사용자 지정 문화권에 대한 자세한 내용은 클래스를 참조하세요 System.Globalization.CultureAndRegionInfoBuilder .