この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

DateTime.TryParseExact メソッド (String, String[], IFormatProvider, DateTimeStyles, DateTime)

 

公開日: 2016年10月

指定した書式の配列、カルチャ固有の書式情報、およびスタイルを使用して、指定した日付と時刻の文字列形式を等価の DateTime に変換します。 文字列形式の書式は、指定した書式の少なくとも 1 つと完全に一致する必要があります。 このメソッドは、変換に成功したかどうかを示す値を返します。

名前空間:   System
アセンブリ:  mscorlib (mscorlib.dll 内)

public static bool TryParseExact(
	string s,
	string[] formats,
	IFormatProvider provider,
	DateTimeStyles style,
	out DateTime result
)

パラメーター

s
Type: System.String

変換する日時を含む文字列。

formats
Type: System.String[]

s の許可された形式の配列。 詳細については、次の「解説」を参照してください。

provider
Type: System.IFormatProvider

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

style
Type: System.Globalization.DateTimeStyles

s で使用可能な書式を示す、列挙値のビットごとの組み合わせ。 通常指定する値は、DateTimeStyles.None です。

result
Type: System.DateTime

変換に成功した場合は、s に格納された日時と等しい DateTime 値が格納されます。変換に失敗した場合は MinValue が格納されます。 s または formatsnull の場合、s または formats の要素が空の文字列の場合、あるいは、s の書式が formats に指定されたいずれの書式パターンとも一致しない場合、変換は失敗します。 このパラメーターは初期化せずに渡されます。

戻り値

Type: System.Boolean

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

Exception Condition
ArgumentException

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

-または-

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

DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)メソッドに割り当てられているパターンのいずれかに一致する日付の文字列表現を解析して、formatsパラメーター。 ようなもの、DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)メソッドを除く、TryParseExact変換が失敗した場合、メソッドが例外をスローしません。

sパラメーターには、解析するには、日付と時刻が含まれています。 場合、sパラメーターには、時刻のみが含まれています。 および日がない場合を除き、現在の日付が使用される、styleパラメーターが含まれています、DateTimeStyles.NoCurrentDateDefaultフラグいる場合、既定の日付 (DateTime.Date.MinValue) が使用されます。 場合、sパラメーターが含まれるは、日付のみとありません時間、午前 0 時 (00: 00:00) を使用します。 styleパラメーターも指定するかどうか、sパラメーターは、先頭を含めることができます、内部、または末尾の空白文字のいずれかで書式指定文字列で許可されているもの以外のformatsします。

場合sタイム ゾーン情報を含まない、 Kind 、返されたプロパティDateTimeオブジェクトがDateTimeKind.Unspecifiedです。 使用してこの動作を変更することができます、DateTimeStyles.AssumeLocalフラグを返す、DateTime値がKindプロパティはDateTimeKind.Local、またはを使用して、DateTimeStyles.AssumeUniversalDateTimeStyles.AdjustToUniversalフラグを返す、DateTime値のあるKindプロパティはDateTimeKind.Utcします。 S にタイム ゾーン情報が含まれている場合、時刻は現地時刻に変換されます必要に応じて、およびKind、返されたプロパティDateTimeにオブジェクトが設定されているDateTimeKind.Localです。 使用してこの動作を変更できる、DateTimeStyles.RoundtripKindフラグいないローカル時刻を世界協定時刻 (UTC) に変換し、設定をKindプロパティをDateTimeKind.Utcです。

formatsパラメーターには、パターンの配列が含まれています。 1 つs解析操作が成功する場合に正確に一致する必要があります。 内のパターン、formatsから 1 つまたは複数のカスタム書式指定子で構成されているパラメーター、カスタム日時書式指定文字列テーブル、またはから定義済みのパターンを識別する 1 つの標準書式指定子、標準の日時書式指定文字列テーブル。

カスタム書式パターンでは日付または時刻の区切り記号を使用しない場合は、インバリアント カルチャを使用して、providerパラメーターおよび各カスタムの最も幅の広い形式は、書式指定子。 たとえば、パターンに時間を指定する場合より狭いフォームでは、"H"ではなく、広義の形式"HH"を指定します。

特定の日付と時刻のシンボルとで使用される特定の言語で曜日の名前) などの文字列sによって定義された、providerパラメーターの正確な形式が格納されるs場合format標準書式指定子の文字列です。 providerパラメーターには、次のいずれかを指定できます。

場合providernullCultureInfo現在のカルチャに対応するオブジェクトを使用します。

stylesパラメーターには 1 つまたは複数のメンバーが含まれています、DateTimeStylesかどうかと、空白文字で定義されていないかを決定する列挙体formatに表示できるs解析操作の正確な動作を制御するとします。 次の表がそれぞれどのように説明のメンバー、DateTimeStyles列挙体の運用に与える影響、TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)メソッドです。

DateTimeStyles メンバー

説明

AdjustToUniversal

解析sと、必要に応じて、UTC に変換します。 場合s、タイム ゾーン オフセットが含まれていますまたはsタイム ゾーン情報は含まれませんが、stylesが含まれています、DateTimeStyles.AssumeLocalフラグは、メソッド呼び出し文字列を解析してToUniversalTime、返されたに変換するDateTime値を utc を基準とし、セット、KindプロパティをDateTimeKind.Utcです。 場合s(UTC) を表すことを示しますまたはsタイム ゾーン情報は含まれませんが、stylesが含まれています、DateTimeStyles.AssumeUniversalフラグは、メソッドは、文字列を解析して、返されたをタイム ゾーンの変換を実行しないDateTime値、およびセット、KindプロパティをDateTimeKind.Utcです。 その他のすべてのケースでは、フラグには効果はありません。

AllowInnerWhite

定義されていない、空白文字を指定format任意の特定の日付または時刻要素の間に表示できます。

AllowLeadingWhite

定義されていない、空白文字を指定formatの先頭に表示できるsです。

AllowTrailingWhite

定義されていない、空白文字を指定formatの最後に表示できるsです。

AllowWhiteSpaces

指定するs先頭、内部、および、末尾の空白文字で定義されていない場合がありますformatです。

AssumeLocal

指定された場合s、タイム ゾーン情報がない、現地時刻を表すことが前提とします。 しない限り、DateTimeStyles.AdjustToUniversalフラグが含まれている、 Kind 、返されたプロパティDateTimeに値が設定されているDateTimeKind.Localです。

AssumeUniversal

指定された場合s、タイム ゾーン情報がない UTC を表記と見なされます。 しない限り、DateTimeStyles.AdjustToUniversalメソッドが返されたに変換して、フラグが存在DateTimeUTC から値を現地時刻と設定をそのKindプロパティをDateTimeKind.Localです。

NoCurrentDateDefault

場合s時刻を含む日付の情報がない場合、戻り値の日付が に設定されているDateTime.MinValue.Dateです。

None

s既定値を使用してパラメーターを解析します。 含まれている以外の空白formatは許可されていません。 場合s、返された日付、日付部分がないDateTime値は 1/1/0001 に設定します。 場合sタイム ゾーン情報を含まない、 Kind 、返されたプロパティDateTimeにオブジェクトが設定されているDateTimeKind.Unspecifiedです。 タイム ゾーン情報が存在する場合s、時刻は現地時刻に変換され、Kind 、返されたプロパティDateTimeにオブジェクトが設定されているDateTimeKind.Localです。

RoundtripKind

タイム ゾーン情報を含む文字列への変換を防止しようと、DateTime値とそのKindプロパティに設定DateTimeKind.Localです。 このフラグは、主に UTC 時刻の現地時間への変換を防ぎます。

呼び出し時の注意:

.NET Framework 4、TryParseExactメソッドを返します。falseに解析する文字列が、時間の部分と契約に含まれていない AM/PM 指定子を含む場合。.NET Framework 3.5と以前のバージョンでは、AM/PM 指定子は無視されます。

次の例では、DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)メソッドを使用できる形式の数値の文字列が正しく解析できることを確認してください。

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] formats= {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", 
                         "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", 
                         "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", 
                         "M/d/yyyy h:mm", "M/d/yyyy h:mm", 
                         "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"};
      string[] dateStrings = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM", 
                              "5/1/2009 6:32:00", "05/01/2009 06:32", 
                              "05/01/2009 06:32:00 PM", "05/01/2009 06:32:00"}; 
      DateTime dateValue;

      foreach (string dateString in dateStrings)
      {
         if (DateTime.TryParseExact(dateString, formats, 
                                    new CultureInfo("en-US"), 
                                    DateTimeStyles.None, 
                                    out dateValue))
            Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue);
         else
            Console.WriteLine("Unable to convert '{0}' to a date.", dateString);
      }
   }
}
// The example displays the following output:
//       Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
//       Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
2.0 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能
トップに戻る
表示: