DateTime.TryParse DateTime.TryParse DateTime.TryParse DateTime.TryParse Method

定義

指定した文字列形式の日時を対応する 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(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)
TryParse(String, DateTime) TryParse(String, DateTime) TryParse(String, DateTime) 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) TryParse(String, IFormatProvider, DateTimeStyles, DateTime) TryParse(String, IFormatProvider, DateTimeStyles, DateTime) 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) TryParse(ReadOnlySpan<Char>, DateTime) TryParse(ReadOnlySpan<Char>, DateTime) TryParse(ReadOnlySpan<Char>, DateTime)

注釈

重要

和暦の時代 (年号) は天皇の代に基づいているため、変更されることが予想されます。Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. たとえば、JapaneseCalendarJapaneseLunisolarCalendar において、2019 年 5 月 1 日から令和時代が始まることになりました。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 の機能や、複数の時代 (年号) をサポートしているカレンダーを操作する際のベスト プラクティスについては、「Working with eras (時代 (年号) の操作)」をご覧ください。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) TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)

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

パラメーター

戻り値

TryParse(String, DateTime) TryParse(String, DateTime) TryParse(String, DateTime) 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

パラメーター

s
String String String String

変換する日付と時刻を格納した文字列。A string containing a date and time to convert.

result
DateTime DateTime DateTime 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.

戻り値

s パラメーターが正常に変換された場合は true。それ以外の場合は falsetrue if the s parameter was converted successfully; otherwise, false.

次の例では、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).

注釈

@No__t-0 メソッドは、DateTime.Parse(String) メソッドに似ていますが、変換に失敗した場合に TryParse(String, DateTime) メソッドが例外をスローしない点が異なります。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.

文字列 s は、現在のスレッドカルチャによって暗黙的に指定された、現在の DateTimeFormatInfo オブジェクトの書式情報を使用して解析されます。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. @No__t-0 に日付と時刻のみが含まれている場合、このメソッドは時刻が12:00 午前0時であると想定します。If s contains only a date and no time, this method assumes the time is 12:00 midnight. @No__t-0 に2桁の年の日付要素が含まれている場合、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. @No__t-0 の先頭、内部、または末尾の空白文字は無視されます。Any leading, inner, or trailing white space character in s is ignored. 日付と時刻は、先頭と末尾の符号記号 (' # '、U + 0023) のペアで囲むことができ、1つ以上の NULL 文字 (U + 0000) で trailed できます。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).

@No__t-0 メソッドは、現在のカルチャの書式規則を使用して日付と時刻の文字列形式を解析しようとするため、異なるカルチャで特定の文字列を解析しようとすると、失敗するか、異なる結果を返すことがあります。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 メソッドのオーバーロードの1つを使用して、書式指定子を指定します。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.

@No__t-0 が現在の暦の閏年の閏年の文字列表現である場合、メソッドは @no__t を正常に解析します。If s is the string representation of a leap day in a leap year in the current calendar, the method parses s successfully. @No__t-0 は、現在のカルチャの現在の暦におけるうるう年以外の日付の文字列表現である場合、解析操作は失敗し、メソッドは 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.

@No__t-0 にタイムゾーン情報が含まれていない場合、result には、メソッドが返されたときに Kind プロパティが DateTimeKind.Unspecified である @no__t 2 の値が含まれます。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.Local である DateTime 値が含まれます。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.

注意 (呼び出し元)

書式設定は、現在の 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. 現在の DateSeparator プロパティと TimeSeparator プロパティが同じ値に設定されている場合、TryParse メソッドは予期せず失敗し、False を返します。The TryParse method can unexpectedly fail and return False if the current DateSeparator and TimeSeparator properties are set to the same value.

こちらもご覧ください

TryParse(String, IFormatProvider, DateTimeStyles, DateTime) TryParse(String, IFormatProvider, DateTimeStyles, DateTime) TryParse(String, IFormatProvider, DateTimeStyles, DateTime) 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

パラメーター

s
String String String String

変換する日付と時刻を格納した文字列。A string containing a date and time to convert.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

s に関するカルチャ固有の書式情報を提供するオブジェクト。An object that supplies culture-specific formatting information about s.

styles
DateTimeStyles DateTimeStyles DateTimeStyles 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 DateTime 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.

戻り値

s パラメーターが正常に変換された場合は true。それ以外の場合は falsetrue if the s parameter was converted successfully; otherwise, false.

例外

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.

次の例は、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.

注釈

@No__t-0 メソッドは、日付、時刻、およびタイムゾーン情報を格納できる文字列を解析します。The DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method parses a string that can contain date, time, and time zone information. これは DateTime.Parse(String, IFormatProvider, DateTimeStyles) メソッドに似ていますが、変換に失敗した場合に DateTime.TryParse(String, DateTime) メソッドが例外をスローしない点が異なります。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.

このメソッドは、認識されないデータを無視して @no__t 0 を完全に解析しようとします。This method attempts to ignore unrecognized data and parse s completely. @No__t-0 に時刻が含まれており、日付が指定されていない場合、既定では、メソッドは現在の日付を置き換えます。 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. @No__t-0 に日付が含まれていても、時刻が指定されていない場合は、既定の時刻として12:00 午前0時が使用されます。If s contains a date but no time, 12:00 midnight is used as the default time. 日付が存在するが、その年の部分が2桁のみで構成されている場合は、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. @No__t-0 の先頭、内部、または末尾の空白文字はすべて無視されます。Any leading, inner, or trailing white space characters in s are ignored. 日付と時刻は、先頭と末尾の符号記号 (' # '、U + 0023) のペアで囲むことができ、1つ以上の NULL 文字 (U + 0000) で trailed できます。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:

  • 書式設定が s パラメーターで使用されているカルチャを表す @no__t 0 オブジェクト。A CultureInfo object that represents the culture whose formatting is used in the s parameter. @No__t-1 プロパティによって返される @no__t 0 オブジェクトは s で使用される書式を定義します。The DateTimeFormatInfo object returned by the CultureInfo.DateTimeFormat property defines the formatting used in s.

  • @No__t-1 で使用される書式を定義する @no__t 0 オブジェクト。A DateTimeFormatInfo object that defines the formatting used in s.

  • カスタムの IFormatProvider 実装。A custom IFormatProvider implementation. @No__t-0 メソッドは、s で使用される書式を定義する @no__t 1 オブジェクトを返します。Its IFormatProvider.GetFormat method returns a DateTimeFormatInfo object that defines the formatting used in s.

providernull の場合は、現在のカルチャが使用されます。If provider is null, the current culture is used.

@No__t-0 が現在の暦の閏年の閏年の文字列表現である場合、メソッドは @no__t を正常に解析します。If s is the string representation of a leap day in a leap year in the current calendar, the method parses s successfully. @No__t-0 が 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.

@No__t-0 パラメーターは、解析された文字列の正確な解釈と、解析操作でどのように処理するかを定義します。The styles parameter defines the precise interpretation of the parsed string and how the parse operation should handle it. 次の表に示すように、DateTimeStyles 列挙体の1つ以上のメンバーを指定できます。It can be one or more members of the DateTimeStyles enumeration, as described in the following table.

DateTimeStyles メンバーDateTimeStyles member 説明Description
AdjustToUniversal @No__t-0 を解析し、必要に応じて UTC に変換します。Parses s and, if necessary, converts it to UTC. @No__t-0 にタイムゾーンオフセットが含まれている場合、または s にタイムゾーン情報が含まれていないにもかかわらず、styles には DateTimeStyles.AssumeLocal フラグが含まれている場合、メソッドは文字列を解析し、ToUniversalTime を呼び出して返された DateTime の値を UTC に変換し、KindIf 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. @No__t-0 が UTC を表すことを示している場合、または s にタイムゾーン情報が含まれておらず、styles には DateTimeStyles.AssumeUniversal フラグが含まれている場合、メソッドは文字列を解析し、返された DateTime の値にタイムゾーン変換を実行し、Kind プロパティを設定します。@no__t します。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. @No__t-0 の日付と時刻の要素では、内側の空白文字を使用できます。Inner white space is permitted in the date and time elements of s.
AllowLeadingWhite 有効ですが、この値は無視されます。Although valid, this value is ignored. @No__t-0 の日付と時刻の要素で先頭の空白文字を使用できます。Leading white space is permitted in the date and time elements of s.
AllowTrailingWhite 有効ですが、この値は無視されます。Although valid, this value is ignored. @No__t-0 の日付と時刻の要素では、末尾の空白文字を使用できます。Trailing white space is permitted in the date and time elements of s.
AllowWhiteSpaces @No__t-0 に先頭、内部、および末尾の空白を含めることを指定します。Specifies that s may contain leading, inner, and trailing white spaces. これが既定の動作です。This is the default behavior. @No__t-1 など、より制限の厳しい @no__t 0 列挙値を指定することによってオーバーライドすることはできません。It cannot be overridden by supplying a more restrictive DateTimeStyles enumeration value such as DateTimeStyles.None.
AssumeLocal @No__t-0 にタイムゾーン情報がない場合は、現地時刻を表すと想定されます。Specifies that if s lacks any time zone information, it is assumed to represent a local time. @No__t-0 フラグが指定されていない場合、返される 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 @No__t-0 にタイムゾーン情報がない場合、UTC を表すと想定されることを指定します。Specifies that if s lacks any time zone information, it is assumed to represent UTC. @No__t-0 フラグが指定されていない場合、メソッドは、返された 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 に設定された @no__t 0 値への日付と時刻の文字列の変換を防止しようとします。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.

@No__t-0 にタイムゾーン情報が含まれていない場合、DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) メソッドは、styles フラグが特に指定されていない限り、Kind プロパティが4である @no__t 2 の値を返します。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. @No__t-0 にタイムゾーンまたはタイムゾーンオフセット情報が含まれている場合、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.

カスタムカルチャの解析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. @No__t-0 メソッドは、いくつかの暗黙的な解析パターンを使用して文字列を解析しようとしますが、これらはすべて失敗する可能性があります。The TryParse method attempts to parse a string with several implicit parse patterns, all of which might fail. これに対し、@no__t 0 のメソッドでは、成功する可能性がある1つ以上の正確な解析パターンを明示的に指定する必要があります。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.

注意 (呼び出し元)

書式設定は、現在の DateTimeFormatInfo オブジェクトのプロパティの影響を受けます。このオブジェクトは、provider パラメーターによって指定されます。Formatting is influenced by properties of the current DateTimeFormatInfo object, which is supplied by the provider parameter. 現在の DateSeparator プロパティと TimeSeparator プロパティが同じ値に設定されている場合、TryParse メソッドは予期せず失敗し、False を返します。The TryParse method can unexpectedly fail and return False if the current DateSeparator and TimeSeparator properties are set to the same value.

こちらもご覧ください

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

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

パラメーター

戻り値

適用対象