英語で読む

次の方法で共有


DateTime.TryParse メソッド

定義

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

オーバーロード

TryParse(ReadOnlySpan<Char>, DateTime)

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

TryParse(String, DateTime)

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

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTime)

文字のスパンを値に解析しようとします。

TryParse(String, IFormatProvider, DateTime)

文字列を値に解析しようとします。

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

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

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

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

注釈

重要

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

TryParse(ReadOnlySpan<Char>, DateTime)

ソース:
DateTime.cs
ソース:
DateTime.cs
ソース:
DateTime.cs

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

public static bool TryParse (ReadOnlySpan<char> s, out DateTime result);

パラメーター

s
ReadOnlySpan<Char>

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

result
DateTime

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

戻り値

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

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

TryParse(String, DateTime)

ソース:
DateTime.cs
ソース:
DateTime.cs
ソース:
DateTime.cs

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

public static bool TryParse (string s, out DateTime result);
public static bool TryParse (string? s, out DateTime result);

パラメーター

s
String

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

result
DateTime

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

戻り値

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

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

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

注釈

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

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

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

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

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

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

注意 (呼び出し元)

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

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTime)

ソース:
DateTime.cs
ソース:
DateTime.cs
ソース:
DateTime.cs

文字のスパンを値に解析しようとします。

public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out DateTime result);

パラメーター

s
ReadOnlySpan<Char>

解析する文字のスパン。

provider
IFormatProvider

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

result
DateTime

このメソッドから制御が戻るときに、 には、正常に解析 sされた結果、または失敗した場合は未定義の値が格納されます。

戻り値

true 正常に解析された場合 s は 。それ以外の場合 falseは 。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 7, 8, 9

TryParse(String, IFormatProvider, DateTime)

ソース:
DateTime.cs
ソース:
DateTime.cs
ソース:
DateTime.cs

文字列を値に解析しようとします。

public static bool TryParse (string? s, IFormatProvider? provider, out DateTime result);

パラメーター

s
String

解析する文字列。

provider
IFormatProvider

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

result
DateTime

このメソッドから制御が戻るときに、正常に解析 s された結果または失敗した場合は未定義の値が格納されます。

戻り値

true 正常に解析された場合 s は 。それ以外の場合 falseは 。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 7, 8, 9

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

ソース:
DateTime.cs
ソース:
DateTime.cs
ソース:
DateTime.cs

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

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

パラメーター

s
String

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

provider
IFormatProvider

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

styles
DateTimeStyles

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

result
DateTime

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

戻り値

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.

注釈

この API の詳細については、「 DateTime.TryParse の補足 API 解説」を参照してください。

注意 (呼び出し元)

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

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

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

ソース:
DateTime.cs
ソース:
DateTime.cs
ソース:
DateTime.cs

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

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

パラメーター

s
ReadOnlySpan<Char>

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

provider
IFormatProvider

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

styles
DateTimeStyles

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

result
DateTime

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

戻り値

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

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1