情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

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

2013/12/12

指定したカルチャ固有の書式情報と書式スタイルを使用して、指定した日付と時刻の文字列形式を等価の DateTimeOffset の値に変換します。

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

public static DateTimeOffset Parse(
	string input,
	IFormatProvider formatProvider,
	DateTimeStyles styles
)

パラメーター

input
型: System.String
変換する日付と時刻を含む文字列。
formatProvider
型: System.IFormatProvider
input に関するカルチャ固有の書式情報を提供するオブジェクト。
styles
型: System.Globalization.DateTimeStyles
input に許可されている書式を示す列挙値のビットごとの組み合わせ。通常指定する値は、None です。

戻り値

型: System.DateTimeOffset
formatProvider および styles で指定された、input 内の日時に相当するオブジェクト。

例外条件
ArgumentException

オフセットが 14 時間を超えているか、-14 時間未満です。

または

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

または

styles にサポート外の DateTimeStyles 値が含まれています。

または

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

ArgumentNullException

inputnull です。

FormatException

input が、日付と時刻の有効な文字列形式を格納していません。

または

input に指定された文字列形式には、オフセット値しか含まれておらず、日付または時刻が存在しません。

このメソッドは、空白で区切られた 3 つの要素から成る文字列を解析します。要素は任意の順序で指定できます。この 3 つの要素を次の表に示します。

要素

使用例

<Date>

"2 / 10 / 2007"

<Time>

"1:02:03 PM"

<Offset>

"-7:30:15"

これらの各要素は省略可能ですが、<Offset> だけを単独で指定することはできません。必ず <Date> または <Time> と組み合わせて指定する必要があります。<Date> を省略した場合、現在の日付が既定値として使用されます。<時刻> が存在しない場合、既定値は 12:00:00 AM です。<オフセット> が存在しない場合、既定値はローカル タイム ゾーンのオフセットになるか、DateTimeStyles.AdjustToUniversal または DateTimeStyles.AssumeUniversal の値が styles パラメーターに指定されている場合は TimeSpan.Zero になります。<Offset> を指定する場合は、世界協定時刻 (UTC) を基準とするオフセット値を正数または負数で指定できます。どちらの場合も、<Offset> は符号を付けて指定する必要があります。

この 3 つの要素の書式は、formatProvider パラメーターに次のいずれかを指定することによって定義します。

それぞれの要素の前後には空白を付けることもできます。また、<Date> 要素と <Time> 要素では、「6: 00:00」のように要素内に空白を含めることができます。00:00). <Offset> コンポーネントにのみ内部に空白を含めることができます。

formatprovidernull の場合は、現在のカルチャに対応する CultureInfo オブジェクトを使用して、日付要素と時刻要素に使用できる特定の書式が決定されます。

<Offset> に使用する正負の符号は + または - であることが必要です。formatProvider パラメーターから返される NumberFormatInfo オブジェクトの PositiveSign プロパティまたは NegativeSign プロパティで定義することはできません。

次の表に、サポートされている System.Globalization.DateTimeStyles 列挙体のメンバーを次します。

DateTimeStyles メンバー

説明

AdjustToUniversal

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

AllowInnerWhite

この値は有効ですが無視されます。<Date> と <Time> の要素内には空白を使用できます。

AllowLeadingWhite

この値は有効ですが無視されます。解析対象の文字列では、各要素の前に空白を含めることができます。

AllowTrailingWhite

この値は有効ですが無視されます。解析対象の文字列では、各要素の後に空白を含めることができます。

AllowWhiteSpaces

これが既定の動作です。DateTimeStyles.None など、より制限の厳しい DateTimeStyles 列挙値を指定してオーバーライドすることはできません。

AssumeLocal

input パラメーターで <Offset> 要素が省略されていた場合に、ローカル タイム ゾーンのオフセットが使用されることを示します。これは、Parse メソッドの既定の動作です。

AssumeUniversal

input パラメーターで <Offset> 要素が省略されていた場合に、UTC のオフセット (00:00) が使用されることを示します。

None

この値は有効ですが無視されます。動作には一切影響しません。

RoundtripKind

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

唯一サポート外となるのは、DateTimeStyles.NoCurrentDateDefault 値です。この値を styles パラメーターに含めた場合、ArgumentException がスローされます。

次の例は、Parse(String, IFormatProvider, DateTimeStyles) メソッドの styles パラメーターに対して、DateTimeStyles.AssumeLocalDateTimeStyles.AssumeUniversalDateTimeStyles.AdjustToUniversal の各値を渡した場合の影響を示しています。


string dateString;
DateTimeOffset offsetDate;

dateString = "05/01/2008 6:00:00";
// Assume time is local 
offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AssumeLocal);
outputBlock.Text += offsetDate.ToString() + "\n";   // Displays 5/1/2008 6:00:00 AM -07:00

// Assume time is UTC
offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AssumeUniversal);
outputBlock.Text += offsetDate.ToString() + "\n";   // Displays 5/1/2008 6:00:00 AM +00:00

// Parse and convert to UTC 
dateString = "05/01/2008 6:00:00AM +5:00";
offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AdjustToUniversal);
outputBlock.Text += offsetDate.ToString() + "\n";   // Displays 5/1/2008 1:00:00 AM +00:00


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: