DateTime.TryParse Method

Definition

날짜와 시간에 대한 지정된 문자열 표현을 해당 DateTime 요소로 변환하고, 변환에 성공했는지를 나타내는 값을 반환합니다.Converts the specified string representation of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

Overloads

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)

지정된 문화권별 형식 정보 및 서식 지정 스타일을 사용하여 날짜 및 시간의 범위 표현을 해당하는 DateTime(으)로 변환하고 변환에 성공했는지를 나타내는 값을 반환합니다.Converts the span representation of a date and time to its DateTime equivalent using the specified culture-specific format information and formatting style, and returns a value that indicates whether the conversion succeeded.

TryParse(String, DateTime)

날짜와 시간에 대한 지정된 문자열 표현을 해당 DateTime 요소로 변환하고, 변환에 성공했는지를 나타내는 값을 반환합니다.Converts the specified string representation of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

지정된 문화권별 형식 정보 및 서식 지정 스타일을 사용하여 날짜 및 시간의 지정된 문자열 표현을 해당 DateTime으로 변환하고 변환에 성공했는지를 나타내는 값을 반환합니다.Converts the specified string representation of a date and time to its DateTime equivalent using the specified culture-specific format information and formatting style, and returns a value that indicates whether the conversion succeeded.

TryParse(ReadOnlySpan<Char>, DateTime)

날짜와 시간에 대한 지정된 문자 범위를 해당하는 DateTime(으)로 변환하고, 변환에 성공했는지를 나타내는 값을 반환합니다.Converts the specified char span of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

Remarks

Important

일본어 달력의 시대는 천황 통치 기간을 기준으로 하므로 변경되어야 합니다.Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. 예를 들어 2019년 5월 1일은 JapaneseCalendarJapaneseLunisolarCalendar에서 레이와 시대의 시작을 나타냅니다.For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. 이러한 시대 변경 내용은 해당 달력을 사용하는 모든 애플리케이션에 영향을 줍니다.Such a change of era affects all applications that use these calendars. 자세한 내용 및 현재 애플리케이션이 영향을 받는지 확인하는 방법은 .NET에서 일본식 달력의 새로운 세대 처리를 참조하세요.See Handling a new era in the Japanese calendar in .NET for more information and to determine whether your applications are affected. Windows 시스템에서 애플리케이션을 테스트하여 세대 변화에 대한 준비 상태를 확인하는 방법은 일본어 세대 변경을 위한 애플리케이션 준비를 참조하세요.See Prepare your application for the Japanese era change for information on testing your applications on Windows systems to ensure their readiness for the era change. 여러 시대가 포함된 달력을 지원하는 .NET의 기능과 여러 시대를 지원하는 달력을 사용할 때 모범 사례에 대해서는 시대 작업을 참조하세요.See Working with eras for features in .NET that support calendars with multiple eras and for best practices when working with calendars that support multiple eras.

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)

지정된 문화권별 형식 정보 및 서식 지정 스타일을 사용하여 날짜 및 시간의 범위 표현을 해당하는 DateTime(으)로 변환하고 변환에 성공했는지를 나타내는 값을 반환합니다.Converts the span representation of a date and time to its DateTime equivalent using the specified culture-specific format information and formatting style, and returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider provider, System.Globalization.DateTimeStyles styles, out DateTime result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTime) As Boolean

Parameters

s
ReadOnlySpan<Char>

변환할 날짜와 시간을 나타내는 문자를 포함하는 범위입니다.A span containing the characters representing the date and time to convert.

provider
IFormatProvider

s에 대한 문화권별 형식 지정 정보를 제공하는 개체입니다.An object that supplies culture-specific formatting information about s.

styles
DateTimeStyles

현재 표준 시간대 또는 현재 날짜와 비교하여 구문 분석된 날짜를 해석하는 방법을 정의하는 열거형 값의 비트 조합입니다.A bitwise combination of enumeration values that defines how to interpret the parsed date in relation to the current time zone or the current date. 지정할 일반적인 값은 None입니다.A typical value to specify is None.

result
DateTime

이 메서드는 변환이 성공한 경우 DateTime에 포함된 날짜와 시간에 해당하는 s 값을 반환하고, 변환이 실패한 경우 MinValue를 반환합니다.When this method returns, contains the DateTime value equivalent to the date and time contained in s, if the conversion succeeded, or MinValue if the conversion failed. s 매개 변수가 null이거나, 빈 문자열("")이거나, 날짜 및 시간에 유효한 문자열 표현을 포함하고 있지 않으면 변환에 실패합니다.The conversion fails if the s parameter is null, is an empty string (""), or does not contain a valid string representation of a date and time. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.This parameter is passed uninitialized.

Returns

Boolean

true 매개 변수가 변환되었으면 s이고, 그렇지 않으면 false입니다.true if the s parameter was converted successfully; otherwise, false.

TryParse(String, DateTime)

날짜와 시간에 대한 지정된 문자열 표현을 해당 DateTime 요소로 변환하고, 변환에 성공했는지를 나타내는 값을 반환합니다.Converts the specified string representation of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse (string s, out DateTime result);
static member TryParse : string * DateTime -> bool
Public Shared Function TryParse (s As String, ByRef result As DateTime) As Boolean

Parameters

s
String

날짜와 시간이 포함된 변환할 문자열입니다.A string containing a date and time to convert.

result
DateTime

이 메서드는 변환이 성공한 경우 DateTime에 포함된 날짜와 시간에 해당하는 s 값을 반환하고, 변환이 실패한 경우 MinValue를 반환합니다.When this method returns, contains the DateTime value equivalent to the date and time contained in s, if the conversion succeeded, or MinValue if the conversion failed. s 매개 변수가 null이거나, 빈 문자열("")이거나, 날짜 및 시간에 유효한 문자열 표현을 포함하고 있지 않으면 변환에 실패합니다.The conversion fails if the s parameter is null, is an empty string (""), or does not contain a valid string representation of a date and time. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.This parameter is passed uninitialized.

Returns

Boolean

true 매개 변수가 변환되었으면 s이고, 그렇지 않으면 false입니다.true if the s parameter was converted successfully; otherwise, false.

Examples

다음 예제에서는 DateTime.TryParse(String, DateTime) 메서드에 많은 날짜 및 시간 문자열을 전달 합니다.The following example passes a number of date and time strings to the DateTime.TryParse(String, DateTime) method.

using namespace System;
using namespace System::Globalization;

void main()
{
   array<String^>^ dateStrings = { "05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8", 
                                   "2009-05-01T14:57:32.8375298-04:00", 
                                    "5/01/2008 14:57:32.80 -07:00", 
                                    "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM", 
                                    "Fri, 15 May 2009 20:10:57 GMT" };
   DateTime dateValue;

   Console::WriteLine("Attempting to parse strings using {0} culture.", 
                     CultureInfo::CurrentCulture->Name);
   for each (String^ dateString in dateStrings)
   {
      if (DateTime::TryParse(dateString, dateValue)) 
         Console::WriteLine("  Converted '{0}' to {1} ({2}).", dateString, 
                           dateValue, dateValue.Kind);
      else
         Console::WriteLine("  Unable to parse '{0}'.", dateString);
   }
}
// The example displays the following output: 
//    Attempting to parse strings using en-US culture. 
//       Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified). 
//       Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified). 
//       Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local). 
//       Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local). 
//       Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified). 
//       Unable to parse '16-05-2009 1:00:32 PM'. 
//       Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).
using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] dateStrings = {"05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8",
                              "2009-05-01T14:57:32.8375298-04:00", "5/01/2008",
                              "5/01/2008 14:57:32.80 -07:00",
                              "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM",
                              "Fri, 15 May 2009 20:10:57 GMT" };
      DateTime dateValue;

      Console.WriteLine("Attempting to parse strings using {0} culture.",
                        CultureInfo.CurrentCulture.Name);
      foreach (string dateString in dateStrings)
      {
         if (DateTime.TryParse(dateString, out dateValue))
            Console.WriteLine("  Converted '{0}' to {1} ({2}).", dateString,
                              dateValue, dateValue.Kind);
         else
            Console.WriteLine("  Unable to parse '{0}'.", dateString);
      }
   }
}
// The example displays output like the following:
//    Attempting to parse strings using en-US culture.
//      Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//      Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//      Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
//
//      Converted '5/01/2008' to 5/1/2008 12:00:00 AM (Unspecified).
//      Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
//      Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
//      Unable to parse '16-05-2009 1:00:32 PM'.
//      Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).
Imports System.Globalization

Public Module Example
   Public Sub Main()
      Dim dateStrings() As String = {"05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8",
                                     "2009-05-01T14:57:32.8375298-04:00", "5/01/2008",
                                     "5/01/2008 14:57:32.80 -07:00",
                                     "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM",
                                     "Fri, 15 May 2009 20:10:57 GMT"}
      Dim dateValue As Date
      
      Console.WriteLine("Attempting to parse strings using {0} culture.", _
                        CultureInfo.CurrentCulture.Name)
      For Each dateString As String In dateStrings
         If Date.TryParse(dateString, dateValue) Then
            Console.WriteLine("  Converted '{0}' to {1} ({2}).", dateString, _
                              dateValue, dateValue.Kind)
         Else
            Console.WriteLine("  Unable to parse '{0}'.", dateString)
         End If
      Next
   End Sub
End Module
' The example displays output like the following:
'    Attempting to parse strings using en-US culture.
'      Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
'      Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
'      Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
'
'      Converted '5/01/2008' to 5/1/2008 12:00:00 AM (Unspecified).
'      Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
'      Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
'      Unable to parse '16-05-2009 1:00:32 PM'.
'      Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).

Remarks

DateTime.TryParse(String, DateTime) 메서드는 변환에 실패 하는 경우 TryParse(String, DateTime) 메서드가 예외를 throw 하지 않는다는 점을 제외 하 고는 DateTime.Parse(String) 메서드와 비슷합니다.The DateTime.TryParse(String, DateTime) method is similar to the DateTime.Parse(String) method, except that the TryParse(String, DateTime) method does not throw an exception if the conversion fails.

현재 스레드 문화권에 의해 암시적으로 제공 되는 현재 DateTimeFormatInfo 개체의 서식 지정 정보를 사용 하 여 s 문자열을 구문 분석 합니다.The string s is parsed using formatting information in the current DateTimeFormatInfo object, which is supplied implicitly by the current thread culture.

가능한 경우이 메서드는 인식할 수 없는 데이터를 무시 하 고 월, 일 및 연도 정보는 현재 날짜를 사용 하 여 누락 된 채워집니다.This method tries to ignore unrecognized data, if possible, and fills in missing month, day, and year information with the current date. s 날짜만 포함 하 고 시간을 포함 하지 않는 경우이 메서드는 시간이 12:00 자정 이라고 가정 합니다.If s contains only a date and no time, this method assumes the time is 12:00 midnight. s 두 자리 연도의 날짜 구성 요소를 포함 하는 경우 Calendar.TwoDigitYearMax 속성의 값을 기반으로 현재 문화권의 현재 달력에서 연도로 변환 됩니다.If s includes a date component with a two-digit year, it is converted to a year in the current culture's current calendar based on the value of the Calendar.TwoDigitYearMax property. s에서 선행, 내부 또는 후행 공백 문자는 무시 됩니다.Any leading, inner, or trailing white space character in s is ignored. 날짜 및 시간을 선행 및 후행 숫자 기호 문자 ('#', U + 00-23), 쌍을 사용 하 여 대괄호로 묶어야 하 고 하나를 사용 하 여 올 수 있습니다 또는 이상의 NULL 문자 (U + 0000)입니다.The date and time can be bracketed with a pair of leading and trailing NUMBER SIGN characters ('#', U+0023), and can be trailed with one or more NULL characters (U+0000).

DateTime.TryParse(String, DateTime) 메서드는 현재 문화권의 서식 지정 규칙을 사용 하 여 날짜 및 시간의 문자열 표현에 대 한 구문 분석을 시도 하므로, 다른 문화권에서 특정 문자열을 구문 분석 하려고 하면 실패 하거나 다른 결과를 반환할 수 있습니다.Because the DateTime.TryParse(String, DateTime) method tries to parse the string representation of a date and time using the formatting rules of the current culture, trying to parse a particular string across different cultures can either fail or return different results. 특정 날짜 및 시간 형식이 다른 로캘에서 구문 분석 되는 경우 DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) 메서드나 TryParseExact 메서드의 오버 로드 중 하나를 사용 하 고 서식 지정자를 제공 합니다.If a specific date and time format will be parsed across different locales, use the DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method or one of the overloads of the TryParseExact method and provide a format specifier.

s 현재 달력에서 윤년의 윤 일에 대 한 문자열 표현인 경우 메서드는 s 성공적으로 구문 분석 합니다.If s is the string representation of a leap day in a leap year in the current calendar, the method parses s successfully. s 현재 문화권의 현재 달력에서 윤년이 아닌 날짜의 문자열 표현인 경우 구문 분석 작업이 실패 하 고 메서드에서 false을 반환 합니다.If s is the string representation of a leap day in a non-leap year in the current culture's current calendar, the parse operation fails and the method returns false.

s에 표준 시간대 정보가 포함 되어 있지 않은 경우 result는 메서드가 반환 될 때 Kind 속성이 DateTimeKind.Unspecified DateTime 값을 포함 합니다.If s contains no time zone information, result contains a DateTime value whose Kind property is DateTimeKind.Unspecified when the method returns. 구문 분석할 문자열이 표준 시간대 정보를 포함 하는 경우 result는 메서드가 반환 될 때 Kind 속성이 DateTimeKind.LocalDateTime 값을 포함 합니다.If the string to be parsed contains time zone information, result contains a DateTime value whose Kind property is DateTimeKind.Local when the method returns.

Notes to Callers

서식 지정은 현재 DateTimeFormatInfo 개체의 속성에 따라 달라 지 며, 기본적으로 제어판의 국가 및 언어 옵션 항목에서 파생 됩니다.Formatting is influenced by properties of the current DateTimeFormatInfo object, which by default are derived from the Regional and Language Options item in Control Panel. 현재 DateSeparatorTimeSeparator 속성이 같은 값으로 설정 된 경우 TryParse 메서드가 예기치 않게 실패 하 고 False를 반환할 수 있습니다.The TryParse method can unexpectedly fail and return False if the current DateSeparator and TimeSeparator properties are set to the same value.

See also

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

지정된 문화권별 형식 정보 및 서식 지정 스타일을 사용하여 날짜 및 시간의 지정된 문자열 표현을 해당 DateTime으로 변환하고 변환에 성공했는지를 나타내는 값을 반환합니다.Converts the specified string representation of a date and time to its DateTime equivalent using the specified culture-specific format information and formatting style, and returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParse(System::String ^ s, IFormatProvider ^ provider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse (string s, IFormatProvider provider, System.Globalization.DateTimeStyles styles, out DateTime result);
static member TryParse : string * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTime) As Boolean

Parameters

s
String

날짜와 시간이 포함된 변환할 문자열입니다.A string containing a date and time to convert.

provider
IFormatProvider

s에 대한 문화권별 형식 지정 정보를 제공하는 개체입니다.An object that supplies culture-specific formatting information about s.

styles
DateTimeStyles

현재 표준 시간대 또는 현재 날짜와 비교하여 구문 분석된 날짜를 해석하는 방법을 정의하는 열거형 값의 비트 조합입니다.A bitwise combination of enumeration values that defines how to interpret the parsed date in relation to the current time zone or the current date. 지정할 일반적인 값은 None입니다.A typical value to specify is None.

result
DateTime

이 메서드는 변환이 성공한 경우 DateTime에 포함된 날짜와 시간에 해당하는 s 값을 반환하고, 변환이 실패한 경우 MinValue를 반환합니다.When this method returns, contains the DateTime value equivalent to the date and time contained in s, if the conversion succeeded, or MinValue if the conversion failed. s 매개 변수가 null이거나, 빈 문자열("")이거나, 날짜 및 시간에 유효한 문자열 표현을 포함하고 있지 않으면 변환에 실패합니다.The conversion fails if the s parameter is null, is an empty string (""), or does not contain a valid string representation of a date and time. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.This parameter is passed uninitialized.

Returns

Boolean

true 매개 변수가 변환되었으면 s이고, 그렇지 않으면 false입니다.true if the s parameter was converted successfully; otherwise, false.

Exceptions

styles이 유효한 DateTimeStyles 값이 아닙니다.styles is not a valid DateTimeStyles value.

-또는--or- stylesDateTimeStyles 값의 잘못된 조합이 포함되어 있습니다(예: AssumeLocalAssumeUniversal 조합).styles contains an invalid combination of DateTimeStyles values (for example, both AssumeLocal and AssumeUniversal).

provider은(는) 중립 문화권이며 구문 분석 작업에 사용할 수 없습니다.provider is a neutral culture and cannot be used in a parsing operation.

Examples

다음 예제에서는 DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) 메서드를 보여 줍니다.The following example illustrates the DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string dateString;
      CultureInfo culture;
      DateTimeStyles styles;
      DateTime dateResult;

      // Parse a date and time with no styles.
      dateString = "03/01/2009 10:00 AM";
      culture = CultureInfo.CreateSpecificCulture("en-US");
      styles = DateTimeStyles.None;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.",
                           dateString);

      // Parse the same date and time with the AssumeLocal style.
      styles = DateTimeStyles.AssumeLocal;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);

      // Parse a date and time that is assumed to be local.
      // This time is five hours behind UTC. The local system's time zone is
      // eight hours behind UTC.
      dateString = "2009/03/01T10:00:00-5:00";
      styles = DateTimeStyles.AssumeLocal;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);

      // Attempt to convert a string in improper ISO 8601 format.
      dateString = "03/01/2009T10:00:00-5:00";
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);

      // Assume a date and time string formatted for the fr-FR culture is the local
      // time and convert it to UTC.
      dateString = "2008-03-01 10:00";
      culture = CultureInfo.CreateSpecificCulture("fr-FR");
      styles = DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeLocal;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
   }
}
// The example displays the following output to the console:
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
//       2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
//       Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
//       2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.
Imports System.Globalization

Public Module Example
   Public Sub Main()
      Dim dateString As String
      Dim culture As CultureInfo
      Dim styles As DateTimeStyles 
      Dim dateResult As DateTime
      
      ' Parse a date and time with no styles.
      dateString = "03/01/2009 10:00 AM"
      culture = CultureInfo.CreateSpecificCulture("en-US")
      styles = DateTimeStyles.None
      If DateTime.TryParse(dateString, culture, styles, dateResult) Then
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
      
      ' Parse the same date and time with the AssumeLocal style.
      styles = DateTimeStyles.AssumeLocal
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
      
      ' Parse a date and time that is assumed to be local.
      ' This time is five hours behind UTC. The local system's time zone is 
      ' eight hours behind UTC.
      dateString = "2009/03/01T10:00:00-5:00"
      styles = DateTimeStyles.AssumeLocal
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
      
      ' Attempt to convert a string in improper ISO 8601 format.
      dateString = "03/01/2009T10:00:00-5:00"
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      

      ' Assume a date and time string formatted for the fr-FR culture is the local 
      ' time and convert it to UTC.
      dateString = "2008-03-01 10:00"
      culture = CultureInfo.CreateSpecificCulture("fr-FR")
      styles = DateTimeStyles.AdjustToUniversal Or DateTimeStyles.AssumeLocal
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
   End Sub
End Module
' The example displays the following output to the console:
'       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
'       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
'       2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
'       Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
'       2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.

Remarks

DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) 메서드는 날짜, 시간 및 표준 시간대 정보를 포함할 수 있는 문자열을 구문 분석 합니다.The DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method parses a string that can contain date, time, and time zone information. 변환이 실패 하는 경우 DateTime.TryParse(String, DateTime) 메서드가 예외를 throw 하지 않는다는 점을 제외 하 고는 DateTime.Parse(String, IFormatProvider, DateTimeStyles) 메서드와 비슷합니다.It is similar to the DateTime.Parse(String, IFormatProvider, DateTimeStyles) method, except that the DateTime.TryParse(String, DateTime) method does not throw an exception if the conversion fails.

이 메서드는 인식할 수 없는 데이터를 무시 하 고 s를 완전히 구문 분석 하려고 합니다.This method attempts to ignore unrecognized data and parse s completely. s에 시간이 있지만 날짜가 없는 경우 메서드는 기본적으로 현재 날짜를 대체 하거나 styles NoCurrentDateDefault 플래그를 포함 하는 경우 DateTime.Date.MinValue대체 합니다.If s contains a time but no date, the method by default substitutes the current date or, if styles includes the NoCurrentDateDefault flag, it substitutes DateTime.Date.MinValue. s에 날짜가 포함 되어 있지만 시간이 없는 경우 12:00 자정을 기본 시간으로 사용 됩니다.If s contains a date but no time, 12:00 midnight is used as the default time. 날짜가 있지만 연도 구성 요소가 두 자리로만 구성 된 경우 Calendar.TwoDigitYearMax 속성의 값을 기반으로 provider 매개 변수의 현재 달력에서 연도로 변환 됩니다.If a date is present but its year component consists of only two digits, it is converted to a year in the provider parameter's current calendar based on the value of the Calendar.TwoDigitYearMax property. s에서 선행, 내부 또는 후행 공백 문자는 무시 됩니다.Any leading, inner, or trailing white space characters in s are ignored. 날짜 및 시간을 선행 및 후행 숫자 기호 문자 ('#', U + 00-23), 쌍을 사용 하 여 대괄호로 묶어야 하 고 하나를 사용 하 여 올 수 있습니다 또는 이상의 NULL 문자 (U + 0000)입니다.The date and time can be bracketed with a pair of leading and trailing NUMBER SIGN characters ('#', U+0023), and can be trailed with one or more NULL characters (U+0000).

날짜 및 시간 요소와 날짜 및 시간에 사용 되는 이름 및 기호에 대 한 특정 유효한 형식은 다음 중 하나일 수 있는 provider 매개 변수에 의해 정의 됩니다.Specific valid formats for date and time elements, as well as the names and symbols used in dates and times, are defined by the provider parameter, which can be any of the following:

providernull이면 현재 문화권이 사용됩니다.If provider is null, the current culture is used.

s 현재 달력에서 윤년의 윤 일에 대 한 문자열 표현인 경우 메서드는 s 성공적으로 구문 분석 합니다.If s is the string representation of a leap day in a leap year in the current calendar, the method parses s successfully. s 현재 provider달력에서 윤년이 아닌 날짜의 문자열 표현인 경우 구문 분석 작업이 실패 하 고 메서드에서 false을 반환 합니다.If s is the string representation of a leap day in a non-leap year in the current calendar of provider, the parse operation fails and the method returns false.

styles 매개 변수는 구문 분석 된 문자열의 정확한 해석을 정의 하 고 구문 분석 작업에서이를 처리 하는 방법을 정의 합니다.The styles parameter defines the precise interpretation of the parsed string and how the parse operation should handle it. 다음 표에서 설명 하는 것 처럼 DateTimeStyles 열거형의 멤버가 하나 이상 될 수 있습니다.It can be one or more members of the DateTimeStyles enumeration, as described in the following table.

DateTimeStyles 멤버DateTimeStyles member 설명Description
AdjustToUniversal s를 구문 분석 하 고, 필요한 경우 UTC로 변환 합니다.Parses s and, if necessary, converts it to UTC. s 표준 시간대 오프셋을 포함 하거나 s에 표준 시간대 정보가 포함 되어 있지 않지만 DateTimeStyles.AssumeLocal 플래그를 포함 하는 styles 경우 메서드는 문자열을 구문 분석 하 고 ToUniversalTime를 호출 하 여 반환 된 DateTime 값을 UTC로 변환 하 고 Kind 속성을 DateTimeKind.Utc로 설정 합니다.If s includes a time zone offset, or if s contains no time zone information but styles includes the DateTimeStyles.AssumeLocal flag, the method parses the string, calls ToUniversalTime to convert the returned DateTime value to UTC, and sets the Kind property to DateTimeKind.Utc. s에서 UTC를 나타내는지 또는 s에 표준 시간대 정보가 포함 되어 있지 않지만 DateTimeStyles.AssumeUniversal 플래그를 포함 하는 styles 경우 메서드는 문자열을 구문 분석 하 고 반환 된 DateTime 값에 대해 표준 시간대 변환을 수행 하 고 Kind 속성을 DateTimeKind.Utc로 설정 합니다.If s indicates that it represents UTC, or if s does not contain time zone information but styles includes the DateTimeStyles.AssumeUniversal flag, the method parses the string, performs no time zone conversion on the returned DateTime value, and sets the Kind property to DateTimeKind.Utc. 다른 모든 경우 플래그에는 영향을 주지 않습니다.In all other cases, the flag has no effect.
AllowInnerWhite 유효 하더라도이 값은 무시 됩니다.Although valid, this value is ignored. s의 날짜 및 시간 요소에는 내부 공백이 허용 됩니다.Inner white space is permitted in the date and time elements of s.
AllowLeadingWhite 유효 하더라도이 값은 무시 됩니다.Although valid, this value is ignored. s의 날짜 및 시간 요소에는 선행 공백이 허용 됩니다.Leading white space is permitted in the date and time elements of s.
AllowTrailingWhite 유효 하더라도이 값은 무시 됩니다.Although valid, this value is ignored. s의 날짜 및 시간 요소에는 후행 공백이 허용 됩니다.Trailing white space is permitted in the date and time elements of s.
AllowWhiteSpaces s 선행, 내부 및 후행 공백을 포함할 수 있도록 지정 합니다.Specifies that s may contain leading, inner, and trailing white spaces. 기본 동작입니다.This is the default behavior. DateTimeStyles.None와 같이 보다 제한적인 DateTimeStyles 열거형 값을 제공 하 여 재정의할 수 없습니다.It cannot be overridden by supplying a more restrictive DateTimeStyles enumeration value such as DateTimeStyles.None.
AssumeLocal s 표준 시간대 정보가 부족 한 경우 현지 시간을 나타내는 것으로 간주 하도록 지정 합니다.Specifies that if s lacks any time zone information, it is assumed to represent a local time. DateTimeStyles.AdjustToUniversal 플래그가 없으면 반환 된 DateTime 값의 Kind 속성이 DateTimeKind.Local로 설정 됩니다.Unless the DateTimeStyles.AdjustToUniversal flag is present, the Kind property of the returned DateTime value is set to DateTimeKind.Local.
AssumeUniversal s 표준 시간대 정보가 부족 한 경우 UTC를 나타내는 것으로 간주 하도록 지정 합니다.Specifies that if s lacks any time zone information, it is assumed to represent UTC. DateTimeStyles.AdjustToUniversal 플래그가 없으면 메서드는 반환 된 DateTime 값을 UTC에서 현지 시간으로 변환 하 고 Kind 속성을 DateTimeKind.Local로 설정 합니다.Unless the DateTimeStyles.AdjustToUniversal flag is present, the method converts the returned DateTime value from UTC to local time and sets its Kind property to DateTimeKind.Local.
None 유효 하더라도이 값은 무시 됩니다.Although valid, this value is ignored.
RoundtripKind 표준 시간대 정보를 포함 하는 문자열의 경우는 Kind 속성이 DateTimeKind.Local로 설정 된 상태에서 날짜 및 시간 문자열을 DateTime 값으로 변환 하는 것을 방지 하려고 합니다.For strings that contain time zone information, tries to prevent the conversion of a date and time string to a DateTime value with its Kind property set to DateTimeKind.Local. 일반적으로 이러한 문자열은 "o", "r" 또는 "u" 표준 형식 지정자를 사용 하 여 DateTime.ToString(String) 메서드를 호출 하 여 생성 됩니다.Typically, such a string is created by calling the DateTime.ToString(String) method using either the "o", "r", or "u" standard format specifiers.

s에 표준 시간대 정보가 포함 되어 있지 않으면 DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) 메서드는 DateTimeKind.Unspecified 플래그가 달리 지정 되지 않는 한 Kind 속성이 styles DateTime 값을 반환 합니다.If s contains no time zone information, the DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method returns a DateTime value whose Kind property is DateTimeKind.Unspecified unless a styles flag indicates otherwise. s 표준 시간대 또는 표준 시간대 오프셋 정보를 포함 하는 경우 DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) 메서드는 필요한 시간 변환을 수행 하 고 다음 중 하나를 반환 합니다.If s includes time zone or time zone offset information, the DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method performs any necessary time conversion and returns one of the following:

이 동작은 DateTimeStyles.RoundtripKind 플래그를 사용 하 여 재정의할 수 있습니다.This behavior can be overridden by using the DateTimeStyles.RoundtripKind flag.

사용자 지정 Culture를 구문 분석Parsing Custom Cultures

사용자 지정 문화권에 대해 생성 된 날짜 및 시간 문자열을 구문 분석 하는 경우 TryParse 메서드 대신 TryParseExact 메서드를 사용 하 여 구문 분석 작업이 성공할 확률을 향상 시킵니다.If you parse a date and time string generated for a custom culture, use the TryParseExact method instead of the TryParse method to improve the probability that the parse operation will succeed. 사용자 지정 문화권 날짜 및 시간 문자열에는 복잡 하 고 구문 분석 하기 어려울 수 있습니다.A custom culture date and time string can be complicated and difficult to parse. TryParse 메서드는 여러 개의 암시적 구문 분석 패턴을 사용 하 여 문자열의 구문 분석을 시도 합니다. 이러한 패턴은 모두 실패할 수 있습니다.The TryParse method attempts to parse a string with several implicit parse patterns, all of which might fail. 반면 TryParseExact 메서드를 사용 하려면 성공할 가능성이 있는 정확한 구문 분석 패턴을 하나 이상 명시적으로 지정 해야 합니다.In contrast, the TryParseExact method requires you to explicitly designate one or more exact parse patterns that are likely to succeed.

사용자 지정 문화권에 대 한 자세한 내용은 System.Globalization.CultureAndRegionInfoBuilder 클래스를 참조 하세요.For more information about custom cultures, see the System.Globalization.CultureAndRegionInfoBuilder class.

Notes to Callers

서식 지정은 provider 매개 변수에서 제공 하는 현재 DateTimeFormatInfo 개체의 속성에 따라 영향을 받습니다.Formatting is influenced by properties of the current DateTimeFormatInfo object, which is supplied by the provider parameter. 현재 DateSeparatorTimeSeparator 속성이 같은 값으로 설정 된 경우 TryParse 메서드가 예기치 않게 실패 하 고 False를 반환할 수 있습니다.The TryParse method can unexpectedly fail and return False if the current DateSeparator and TimeSeparator properties are set to the same value.

See also

TryParse(ReadOnlySpan<Char>, DateTime)

날짜와 시간에 대한 지정된 문자 범위를 해당하는 DateTime(으)로 변환하고, 변환에 성공했는지를 나타내는 값을 반환합니다.Converts the specified char span of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse (ReadOnlySpan<char> s, out DateTime result);
static member TryParse : ReadOnlySpan<char> * DateTime -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As DateTime) As Boolean

Parameters

s
ReadOnlySpan<Char>

날짜와 시간이 포함된 변환할 문자열입니다.A string containing a date and time to convert.

result
DateTime

이 메서드는 변환이 성공한 경우 DateTime에 포함된 날짜와 시간에 해당하는 s 값을 반환하고, 변환이 실패한 경우 MinValue를 반환합니다.When this method returns, contains the DateTime value equivalent to the date and time contained in s, if the conversion succeeded, or MinValue if the conversion failed. s 매개 변수가 null이거나, 빈 문자열("")이거나, 날짜 및 시간에 유효한 문자열 표현을 포함하고 있지 않으면 변환에 실패합니다.The conversion fails if the s parameter is null, is an empty string (""), or does not contain a valid string representation of a date and time. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.This parameter is passed uninitialized.

Returns

Boolean

true 매개 변수가 변환되었으면 s이고, 그렇지 않으면 false입니다.true if the s parameter was converted successfully; otherwise, false.

Applies to