エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

DateTimeOffset.TryParseExact メソッド (String, String, IFormatProvider, DateTimeStyles, DateTimeOffset%)

2013/12/12

指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、指定した日付と時刻の文字列形式を等価の DateTimeOffset に変換します。文字列形式の書式は、指定した書式と完全に一致する必要があります。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public static bool TryParseExact(
	string input,
	string format,
	IFormatProvider formatProvider,
	DateTimeStyles styles,
	out DateTimeOffset result
)

パラメーター

input
型: System.String
変換する日付と時刻を含む文字列。
format
型: System.String
input の必要な書式を定義する書式指定子。
formatProvider
型: System.IFormatProvider
input に関するカルチャ固有の書式情報を提供するオブジェクト。
styles
型: System.Globalization.DateTimeStyles
input に許可されている書式を示す列挙値のビットごとの組み合わせ。通常指定する値は Noneです。
result
型: System.DateTimeOffset %
変換に成功した場合は、input の日時と等価の DateTimeOffset 値が格納されます。変換に失敗した場合は MinValue が格納されます。input パラメーターが null の場合、または formatprovider によって定義された書式での有効な日時の文字列表記が含まれていない場合、変換に失敗します。このパラメーターは初期化されずに渡されます。

戻り値

型: System.Boolean
input パラメーターが正常に変換された場合は true。それ以外の場合は false

例外条件
ArgumentException

styles に未定義の DateTimeStyles 値が含まれています。

または

DateTimeStyles.NoCurrentDateDefault がサポートされていません。

または

styles に指定されている DateTimeStyles 値の組み合わせが正しくありません。

変換に失敗しても例外がスローされないことを除けば、この TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTimeOffset) メソッド オーバーロードは DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) メソッドに似ています。解析する日時の文字列形式は、format パラメーターに指定されたパターンと完全に一致している必要があります。styles パラメーターで定義された空白のバリエーションを使用しても、input 文字列がこのパターンと一致していない場合、解析処理は失敗し、false が返されます。

format パラメーターは、input に必要なパターンを定義する単一の標準書式指定子または 1 つ以上のカスタム書式指定子が含まれている文字列です。input にオフセットが存在している必要があることを示すカスタム書式指定子 zzz、または zzzformat に含まれている場合、オフセットは、正または負の符号を付けて指定する必要があります。符号が存在しない場合、解析処理は失敗し、メソッドから false が返されます。

formatinput に日付を含め、時刻は含めないようにする必要がある場合は、結果として得られる DateTimeOffset オブジェクトには午前 0 時 (0:00:00) が割り当てられます。formatinput に時刻を含め、日付は含めないようにする必要がある場合は、結果として得られる DateTimeOffset オブジェクトにはローカル システムの現在の日付が割り当てられます。format の定義で、input にオフセットを含めるように要求されていない場合、結果として得られる DateTimeOffset オブジェクトのオフセットは、styles パラメーターの値に依存します。stylesAssumeLocal が含まれていた場合、DateTimeOffset オブジェクトにローカル タイム ゾーンのオフセットが割り当てられます。stylesAssumeUniversal が含まれていた場合、DateTimeOffset オブジェクトには、世界協定時刻 (UTC) のオフセットである +00:00 が割り当てられます。いずれの値も指定されなかった場合は、ローカル タイム ゾーンのオフセットが使用されます。

input に使用できる日時の特定の記号と文字列は、formatProvider パラメーターで定義されます。同様に、format が標準の書式指定子文字列であった場合、input の正確なパターンがこのパラメーターによって定義されます。formatProvider パラメーターは、次のいずれかの値になります。

formatprovidernull の場合は、現在のカルチャに対応する CultureInfo オブジェクトが使用されます。

styles パラメーターでは、入力文字列に空白を含めることができるかどうかのほか、オフセット要素を明示的に指定しなかった場合の文字列の解析方法が定義されます。また、解析処理の一部として UTC 変換がサポートされます。DateTimeStyles 列挙体は、NoCurrentDateDefault を除くすべてのメンバーがサポートされます。次の表は、サポートされる各メンバーについて、対応する動作を一覧にしたものです。

DateTimeStyles メンバー

動作

AdjustToUniversal

input を解析し、それを必要に応じて UTC に変換します。これは、文字列を解析した後、返された DateTimeOffset オブジェクトの DateTimeOffset.ToUniversalTime メソッドを呼び出すことに相当します。

AssumeLocal

format の定義で、input にオフセット値を含めるように要求されていなかった場合、返される DateTimeOffset オブジェクトには、ローカル タイム ゾーンのオフセットが割り当てられます。これが既定の動作です。

AssumeUniversal

format の定義で、input にオフセット値を含めるように要求されていなかった場合、返される DateTimeOffset オブジェクトには、UTC のオフセット (+00:00) が割り当てられます。

AllowInnerWhite

input には、書式に指定されていない空白を中間に入れることができます。日付要素と時刻要素の間や (オフセットを除く) 個々の要素内に余分な空白が含まれていても、文字列の解析時には無視されます。

AllowLeadingWhite

format で指定されていない先頭の空白を input に含めることが許可されます。これらは文字列の解析時には無視されます。

AllowTrailingWhite

input の末尾に format で指定されていない空白を含めることができます。これらは文字列の解析時には無視されます。

AllowWhiteSpaces

input の先頭、末尾、または中間に、format で指定されていない空白を含めることができます。文字列の解析時には、format で指定されていない余分な空白文字がすべて無視されます。

None

input には余分な空白が許可されないことを示します。空白は format の指定に従って出現する必要があります。これが既定の動作です。

RoundtripKind

DateTimeOffset 構造体には Kind プロパティが存在しないため、動作には一切影響しません。

次の例では、TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTimeOffset) メソッドに標準とカスタムの書式指定子、インバリアント カルチャ、および各種の DateTimeStyles 値を指定することによって、複数の日時文字列を解析しています。


string dateString, format;
DateTimeOffset result;
IFormatProvider provider = CultureInfo.InvariantCulture;

// Parse date-only value with invariant culture and assume time is UTC.
dateString = "06/15/2008";
format = "d";
if (DateTimeOffset.TryParseExact(dateString, format, provider,
                                 DateTimeStyles.AssumeUniversal,
                                 out result))
   outputBlock.Text += String.Format("'{0}' converts to {1}.", dateString, result.ToString()) + "\n";
else
   outputBlock.Text += String.Format("'{0}' is not in the correct format.", dateString) + "\n";

// Parse date-only value with leading white space.
// Should return False because only trailing whitespace is  
// specified in method call.
dateString = " 06/15/2008";
if (DateTimeOffset.TryParseExact(dateString, format, provider,
                                 DateTimeStyles.AllowTrailingWhite,
                                 out result))
   outputBlock.Text += String.Format("'{0}' converts to {1}.", dateString, result.ToString()) + "\n";
else
   outputBlock.Text += String.Format("'{0}' is not in the correct format.", dateString) + "\n";

// Parse date and time value, and allow all white space.
dateString = " 06/15/   2008  15:15    -05:00";
format = "MM/dd/yyyy H:mm zzz";
if (DateTimeOffset.TryParseExact(dateString, format, provider,
                                 DateTimeStyles.AllowWhiteSpaces,
                                 out result))
   outputBlock.Text += String.Format("'{0}' converts to {1}.", dateString, result.ToString()) + "\n";
else
   outputBlock.Text += String.Format("'{0}' is not in the correct format.", dateString) + "\n";

// Parse date and time and convert to UTC.
dateString = "  06/15/2008 15:15:30 -05:00";
format = "MM/dd/yyyy H:mm:ss zzz";
if (DateTimeOffset.TryParseExact(dateString, format, provider,
                                DateTimeStyles.AllowWhiteSpaces |
                                DateTimeStyles.AdjustToUniversal,
                                out result))
   outputBlock.Text += String.Format("'{0}' converts to {1}.", dateString, result.ToString()) + "\n";
else
   outputBlock.Text += String.Format("'{0}' is not in the correct format.", dateString) + "\n";
// The example displays the following output:
//    '06/15/2008' converts to 6/15/2008 12:00:00 AM +00:00.
//    ' 06/15/2008' is not in the correct format.
//    ' 06/15/   2008  15:15    -05:00' converts to 6/15/2008 3:15:00 PM -05:00.
//    '  06/15/2008 15:15:30 -05:00' converts to 6/15/2008 8:15:30 PM +00:00.


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示:
© 2014 Microsoft