DateTime.TryParse メソッド

定義

指定した文字列形式の日時を対応する DateTime 表現に変換し、変換に成功したかどうかを示す値を返します。

オーバーロード

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

指定したカルチャ固有の書式情報と書式スタイルを使用して、日付と時刻のスパン表現を、それと等価な DateTime に変換し、変換が成功したかどうかを示す値を返します。

TryParse(String, DateTime)

指定した文字列形式の日時を対応する DateTime 表現に変換し、変換に成功したかどうかを示す値を返します。

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

指定したカルチャ固有の書式情報と書式スタイルを使用して、指定した文字列形式の日付と時刻をそれと等価の DateTime に変換し、変換に成功したかどうかを示す値を返します。

TryParse(ReadOnlySpan<Char>, DateTime)

指定した日付と時刻の文字スパンを、それと等価な DateTime に変換し、変換が成功したかどうかを示す値を返します。

注釈

重要

和暦の時代 (年号) は天皇の代に基づいているため、変更されることが予想されます。 たとえば、JapaneseCalendarJapaneseLunisolarCalendar において、2019 年 5 月 1 日から令和時代が始まることになりました。 このような時代 (年号) の変更は、これらのカレンダーを使用するすべてのアプリケーションに影響します。 詳細およびアプリケーションが影響を受けるかどうかを判断する方法については、「 .net の日本語カレンダーでの新しい時代 (年号) の処理」を参照してください。 Windows システムでアプリケーションをテストして、時代 (年号) の変化に対応できるようにする方法については、「日本語時代 (年号) の変更に備えてアプリケーションを準備する」を参照してください。 複数の時代 (年号) を含む暦をサポートする .NET の機能について、および複数の時代 (年号) をサポートする予定表を操作する場合のベストプラクティスについては、「時代と作業

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

指定したカルチャ固有の書式情報と書式スタイルを使用して、日付と時刻のスパン表現を、それと等価な 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);
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

パラメーター

s
ReadOnlySpan<Char>

変換する日付と時刻を表す文字を含むスパン。

provider
IFormatProvider

s に関するカルチャ固有の書式情報を提供するオブジェクト。

styles
DateTimeStyles

現在のタイム ゾーンまたは現在の日付と関連させて、解析された日付をどのように解釈するかを定義する列挙値のビットごとの組み合わせ。 通常指定する値は、None です。

result
DateTime

変換に成功した場合は、このメソッドから戻る時点で、DateTime に格納された日時と等しい s 値が格納されます。変換に失敗した場合は MinValue が格納されます。 s パラメーターが null の場合、空の文字列 ("") の場合、または日付と時刻を表す有効な文字列形式が含まれていない場合は、変換に失敗します。 このパラメーターは初期化せずに渡されます。

戻り値

Boolean

s パラメーターが正常に変換された場合は true。それ以外の場合は false

適用対象

TryParse(String, DateTime)

指定した文字列形式の日時を対応する DateTime 表現に変換し、変換に成功したかどうかを示す値を返します。

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse (string s, 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

変換する日付と時刻を格納した文字列。

result
DateTime

変換に成功した場合は、このメソッドから戻る時点で、DateTime に格納された日時と等しい s 値が格納されます。変換に失敗した場合は MinValue が格納されます。 s パラメーターが null の場合、空の文字列 ("") の場合、または日付と時刻を表す有効な文字列形式が含まれていない場合は、変換に失敗します。 このパラメーターは初期化せずに渡されます。

戻り値

Boolean

s パラメーターが正常に変換された場合は true。それ以外の場合は false

次の例では、多数の日時文字列を メソッドに渡 DateTime.TryParse(String, DateTime) します。

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).

注釈

メソッドは メソッドに似ていますが、変換が失敗した場合、メソッドは DateTime.TryParse(String, DateTime) DateTime.Parse(String) TryParse(String, DateTime) 例外をスローしません。

文字列は s 、現在のオブジェクトの書式設定情報を使用して解析されます。この情報は、現在のスレッド カルチャによって暗黙的 DateTimeFormatInfo に提供されます。

このメソッドは、可能であれば認識できないデータを無視し、不足している月、日、および年の情報を現在の日付で入力します。 に日付と時刻がない場合、このメソッドは時刻が午前 0 時 s 00 分と想定されます。 に 2 桁の年を持つ日付コンポーネントが含まれる場合は、 プロパティの値に基づいて、現在のカルチャの現在の暦の年 s に変換 Calendar.TwoDigitYearMax されます。 の先頭、内部、または末尾の空白文字 s は無視されます。 日付と時刻は、先頭と末尾の NUMBER SIGN 文字 ('#'、U+0023) のペアで角かっこで囲み、1 つ以上の NULL 文字 (U+0000) で後に付けできます。

メソッドは、現在のカルチャの書式設定規則を使用して日付と時刻の文字列表現を解析しようとするので、異なるカルチャ間で特定の文字列を解析しようとすると、失敗するか、異なる結果を返す可能性があります DateTime.TryParse(String, DateTime) 。 特定の日付と時刻の形式が異なる場所で解析される場合は、 メソッドまたは メソッドのいずれかのオーバーロードを使用し、書式指定子 DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) TryParseExact を指定します。

が現在の暦の閏年のうるう日の文字列表現である場合、メソッド s は正常に s 解析されます。 が現在のカルチャの現在の暦の閏年以外の年の閏日の文字列形式である場合、解析操作は失敗し、メソッド s は を返します false

s タイム ゾーン情報が含まれている場合は、 メソッドが返された場合に プロパティが である result DateTime Kind DateTimeKind.Unspecified 値が格納されます。 解析する文字列にタイム ゾーン情報が含まれている場合、 には、 メソッドが返された場合に プロパティが である result DateTime Kind DateTimeKind.Local 値が含まれます。

注意 (呼び出し元)

書式設定は、現在の オブジェクトのプロパティの影響を受け、既定では、現在のオブジェクトの [地域と言語のオプション] DateTimeFormatInfo 項目からコントロール パネル。 現在の プロパティと プロパティが同じ値に設定されている場合、メソッドは予期せず失敗し、 TryParse False DateSeparator TimeSeparator を返す可能性があります。

こちらもご覧ください

適用対象

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

指定したカルチャ固有の書式情報と書式スタイルを使用して、指定した文字列形式の日付と時刻をそれと等価の DateTime に変換し、変換に成功したかどうかを示す値を返します。

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

変換する日付と時刻を格納した文字列。

provider
IFormatProvider

s に関するカルチャ固有の書式情報を提供するオブジェクト。

styles
DateTimeStyles

現在のタイム ゾーンまたは現在の日付と関連させて、解析された日付をどのように解釈するかを定義する列挙値のビットごとの組み合わせ。 通常指定する値は、None です。

result
DateTime

変換に成功した場合は、このメソッドから戻る時点で、DateTime に格納された日時と等しい s 値が格納されます。変換に失敗した場合は MinValue が格納されます。 s パラメーターが null の場合、空の文字列 ("") の場合、または日付と時刻を表す有効な文字列形式が含まれていない場合は、変換に失敗します。 このパラメーターは初期化せずに渡されます。

戻り値

Boolean

s パラメーターが正常に変換された場合は true。それ以外の場合は false

例外

styles は有効な DateTimeStyles 値ではありません。

または stylesDateTimeStyles 値の正しくない組み合わせが含まれています (たとえば、AssumeLocalAssumeUniversal の両方などです)。

provider はニュートラル カルチャであり、解析操作で使用することはできません。

次の例は、 メソッドを示 DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) しています。

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.

注釈

メソッド 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 の午前 0 時が既定の時刻として使用されます。 日付が存在するが、その年コンポーネントが 2 桁の数字だけで構成されている場合は、 プロパティの値に基づいて、パラメーターの現在のカレンダーの年 provider に変換 Calendar.TwoDigitYearMax されます。 の先頭、内部、または末尾の空白文字 s は無視されます。 日付と時刻は、先頭と末尾の NUMBER SIGN 文字 ('#'、U+0023) のペアで角かっこで囲み、1 つ以上の NULL 文字 (U+0000) で後に付けできます。

日付と時刻の要素に対する特定の有効な形式、および日付と時刻で使用される名前とシンボルは、 パラメーターによって定義されます。これは次の任意 provider の形式になります。

providernull の場合は、現在のカルチャが使用されます。

が現在の暦の閏年のうるう日の文字列表現である場合、メソッド s は正常に s 解析されます。 が の現在の暦の閏年以外の年の閏日の文字列形式である場合、解析操作は失敗し、メソッド s provider は を返します false

パラメーターは、解析された文字列の正確な解釈と、解析操作による文字列の styles 処理方法を定義します。 次の表で説明するように、列挙型の 1 つ以上の DateTimeStyles メンバーを指定できます。

DateTimeStyles メンバー 説明
AdjustToUniversal 解析し s 、必要に応じて UTC に変換します。 にタイム ゾーン オフセットが含まれている場合、または タイム ゾーン情報が含まれているのに フラグが含まれている場合、メソッドは文字列を解析し、返された値を UTC に変換するために を呼び出し、 プロパティを に s s styles DateTimeStyles.AssumeLocal ToUniversalTime DateTime Kind 設定します DateTimeKind.Utc 。 が UTC を表す場合、またはタイム ゾーン情報が含まれているのに フラグが含まれている場合、メソッドは文字列を解析し、返された値にタイム ゾーン変換を実行しない場合は、 プロパティを に s s styles DateTimeStyles.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 タイム ゾーン情報がない場合は、UTC s を表すと見なされます。 フラグが存在しない限り、 メソッドは、返された値を UTC から現地時刻に変換し、その プロパティ DateTimeStyles.AdjustToUniversal DateTimeKind に設定します DateTimeKind.Local
None 有効ですが、この値は無視されます。
RoundtripKind タイム ゾーン情報を含む文字列の場合、 は、 プロパティが に設定された値への日付と時刻の文字列 DateTime の変換 Kind を回避します DateTimeKind.Local 。 通常、このような文字列は、"o"、"r"、または "u" 標準書式指定子のいずれかを使用して メソッドを呼び出すことによって DateTime.ToString(String) 作成されます。

s タイム ゾーン情報が含まれている場合、フラグで特に指定されていない限り、 メソッドは プロパティが である値 DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) DateTime Kind DateTimeKind.Unspecified styles を返します。 に s タイム ゾーンまたはタイム ゾーン オフセット情報が含まれる場合、 メソッドは必要な時間変換を実行し DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) 、次のいずれかを返します。

この動作は、 フラグを使用してオーバーライド DateTimeStyles.RoundtripKind できます。

カスタム カルチャの解析

カスタム カルチャに対して生成された日時文字列を解析する場合は、 メソッドの代わりに メソッドを使用して、解析操作が成功する TryParseExact TryParse 確率を向上します。 カスタム カルチャの日付と時刻の文字列は複雑で解析が困難な場合があります。 メソッド TryParse は、いくつかの暗黙的な解析パターンを持つ文字列の解析を試み、すべてが失敗する可能性があります。 これに対し、 メソッドでは、成功する可能性がある 1 つ以上の正確な解析 TryParseExact パターンを明示的に指定する必要があります。

カスタム カルチャの詳細については、 クラスを参照 System.Globalization.CultureAndRegionInfoBuilder してください。

注意 (呼び出し元)

書式設定は、 パラメーターによって提供される現在の DateTimeFormatInfo オブジェクトのプロパティの影響を受 provider ける。 現在の プロパティと プロパティが同じ値に設定されている場合、メソッドは予期せず失敗し、 TryParse False DateSeparator TimeSeparator を返す可能性があります。

こちらもご覧ください

適用対象

TryParse(ReadOnlySpan<Char>, DateTime)

指定した日付と時刻の文字スパンを、それと等価な 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

パラメーター

s
ReadOnlySpan<Char>

変換する日付と時刻を格納した文字列。

result
DateTime

変換に成功した場合は、このメソッドから戻る時点で、DateTime に格納された日時と等しい s 値が格納されます。変換に失敗した場合は MinValue が格納されます。 s パラメーターが null の場合、空の文字列 ("") の場合、または日付と時刻を表す有効な文字列形式が含まれていない場合は、変換に失敗します。 このパラメーターは初期化せずに渡されます。

戻り値

Boolean

s パラメーターが正常に変換された場合は true。それ以外の場合は false

適用対象