DateTimeOffset.Parse メソッド

定義

指定した文字列形式の日付と時刻を等価の DateTimeOffset の値に変換します。

オーバーロード

Parse(String)

指定した文字列形式の日付、時刻、およびオフセットを等価の DateTimeOffset の値に変換します。

Parse(ReadOnlySpan<Char>, IFormatProvider)

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

Parse(String, IFormatProvider)

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

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

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

Parse(String, IFormatProvider, DateTimeStyles)

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

注釈

重要

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

Parse(String)

指定した文字列形式の日付、時刻、およびオフセットを等価の DateTimeOffset の値に変換します。

public:
 static DateTimeOffset Parse(System::String ^ input);
public static DateTimeOffset Parse (string input);
static member Parse : string -> DateTimeOffset
Public Shared Function Parse (input As String) As DateTimeOffset

パラメーター

input
String

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

戻り値

input に含まれる日時と等価のオブジェクト。

例外

オフセットが -14 時間より小さいか、14 時間を超えています。

inputnullです。

input に日付と時刻の有効な文字列形式が含まれていません。

- または -

input に日付または時刻のないオフセット値の文字列形式が含まれています。

次の例では、 メソッドを Parse(String) 呼び出して、いくつかの日付と時刻の文字列を解析します。 この例には、カルチャが en-us であるシステムでの 2007 年 3 月 22 日の出力が含まれています。

string dateString;
DateTimeOffset offsetDate;

// String with date only
dateString = "05/01/2008";
offsetDate = DateTimeOffset.Parse(dateString);
Console.WriteLine(offsetDate.ToString());

// String with time only
dateString = "11:36 PM";
offsetDate = DateTimeOffset.Parse(dateString);
Console.WriteLine(offsetDate.ToString());

// String with date and offset
dateString = "05/01/2008 +1:00";
offsetDate = DateTimeOffset.Parse(dateString);
Console.WriteLine(offsetDate.ToString());

// String with day abbreviation
dateString = "Thu May 01, 2008";
offsetDate = DateTimeOffset.Parse(dateString);
Console.WriteLine(offsetDate.ToString());
// String with date only
let dateString = "05/01/2008"
let offsetDate = DateTimeOffset.Parse dateString
printfn $"{offsetDate}"

// String with time only
let dateString = "11:36 PM"
let offsetDate = DateTimeOffset.Parse dateString
printfn $"{offsetDate}"

// String with date and offset
let dateString = "05/01/2008 +1:00"
let offsetDate = DateTimeOffset.Parse dateString
printfn $"{offsetDate}"

// String with day abbreviation
let dateString = "Thu May 01, 2008"
let offsetDate = DateTimeOffset.Parse(dateString)
printfn $"{offsetDate}"
Dim dateString As String
Dim offsetDate As DateTimeOffset

' String with date only
dateString = "05/01/2008"
offsetDate = DateTimeOffset.Parse(dateString)
Console.WriteLine(offsetDate.ToString())   ' Displays 5/1/2008 12:00:00 AM -07:00  

' String with time only
dateString = "11:36 PM"
offsetDate = DateTimeOffset.Parse(dateString)
Console.WriteLine(offsetDate.ToString())   ' Displays 3/26/2007 11:36:00 PM -07:00

' String with date and offset 
dateString = "05/01/2008 +7:00"
offsetDate = DateTimeOffset.Parse(dateString)
Console.WriteLine(offsetDate.ToString())   ' Displays 5/1/2008 12:00:00 AM +07:00

' String with day abbreviation
dateString = "Thu May 01, 2008"
offsetDate = DateTimeOffset.Parse(dateString)
Console.WriteLine(offsetDate.ToString())   ' Displays 5/1/2008 12:00:00 AM -07:00

注釈

Parse(String) は、任意の順序で表示でき、空白で区切られた 3 つの要素を含む文字列を解析します。 これら 3 つの要素を次の表に示します。

要素
<Date> "2/10/2007"
<Time> "午後 1:02:03"
<Offset> "-7:30"

これらの各要素は省略可能ですが、 <Offset> は単独では表示できません。 日付>または<時刻>と<共に指定する必要があります。 Date> が指定されていない場合<、既定値は現在の日付です。 Time> がない場合<、既定値は午前 12:00:00 です。 Date> が存在するが、その year コンポーネントが 2 桁の数字のみで構成されている場合<、プロパティの値に基づいて、現在のカルチャの現在のカレンダーの年にCalendar.TwoDigitYearMax変換されます。 Offset> が見つからない場合<、既定値はローカル タイム ゾーンのオフセットです。 <オフセット> は、協定世界時 (UTC) からの負のオフセットまたは正のオフセットを表すことができます。 どちらの場合も、 <オフセット> には記号記号を含める必要があります。

文字列は input 、現在のカルチャ用に初期化されたオブジェクトの DateTimeFormatInfo 書式設定情報を使用して解析されます。 現在のカルチャの書式設定に必ずしも対応していない指定された書式を含む文字列を解析するには、 メソッドを ParseExact 使用して書式指定子を指定します。

こちらもご覧ください

適用対象

Parse(ReadOnlySpan<Char>, IFormatProvider)

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

public:
 static DateTimeOffset Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<DateTimeOffset>::Parse;
public static DateTimeOffset Parse (ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> DateTimeOffset
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As DateTimeOffset

パラメーター

s
ReadOnlySpan<Char>

解析する文字のスパン。

provider
IFormatProvider

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

戻り値

を解析した s結果。

実装

適用対象

Parse(String, IFormatProvider)

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

public:
 static DateTimeOffset Parse(System::String ^ input, IFormatProvider ^ formatProvider);
public:
 static DateTimeOffset Parse(System::String ^ input, IFormatProvider ^ formatProvider) = IParsable<DateTimeOffset>::Parse;
public static DateTimeOffset Parse (string input, IFormatProvider formatProvider);
public static DateTimeOffset Parse (string input, IFormatProvider? formatProvider);
static member Parse : string * IFormatProvider -> DateTimeOffset
Public Shared Function Parse (input As String, formatProvider As IFormatProvider) As DateTimeOffset

パラメーター

input
String

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

formatProvider
IFormatProvider

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

戻り値

formatProvider で指定された書式に従って表記された、input に含まれる日時と等価のオブジェクト。

実装

例外

オフセットが -14 時間より小さいか、14 時間を超えています。

inputnullです。

input に日付と時刻の有効な文字列形式が含まれていません。

- または -

input に日付または時刻のないオフセット値の文字列形式が含まれています。

次の例では、fr-fr カルチャ用に書式設定された日付と時刻の文字列を解析し、ローカル システムの既定の en-us カルチャを使用して表示します。

DateTimeFormatInfo fmt = new CultureInfo("fr-fr").DateTimeFormat;
string dateString;
DateTimeOffset offsetDate;

dateString = "03-12-07";
offsetDate = DateTimeOffset.Parse(dateString, fmt);
Console.WriteLine("{0} returns {1}",
                  dateString,
                  offsetDate.ToString());

dateString = "15/09/07 08:45:00 +1:00";
offsetDate = DateTimeOffset.Parse(dateString, fmt);
Console.WriteLine("{0} returns {1}",
                  dateString,
                  offsetDate.ToString());

dateString = "mar. 1 janvier 2008 1:00:00 +1:00";
offsetDate = DateTimeOffset.Parse(dateString, fmt);
Console.WriteLine("{0} returns {1}",
                  dateString,
                  offsetDate.ToString());
// The example displays the following output to the console:
//    03-12-07 returns 12/3/2007 12:00:00 AM -08:00
//    15/09/07 08:45:00 +1:00 returns 9/15/2007 8:45:00 AM +01:00
//    mar. 1 janvier 2008 1:00:00 +1:00 returns 1/1/2008 1:00:00 AM +01:00
let fmt = CultureInfo("fr-fr").DateTimeFormat
let dateString = "03-12-07"
let offsetDate = DateTimeOffset.Parse(dateString, fmt)
printfn $"{dateString} returns {offsetDate}"

let dateString = "15/09/07 08:45:00 +1:00"
let offsetDate = DateTimeOffset.Parse(dateString, fmt)
printfn $"{dateString} returns {offsetDate}"

let dateString = "mar. 1 janvier 2008 1:00:00 +1:00"
let offsetDate = DateTimeOffset.Parse(dateString, fmt)
printfn $"{dateString} returns {offsetDate}"

// The example displays the following output to the console:
//    03-12-07 returns 12/3/2007 12:00:00 AM -08:00
//    15/09/07 08:45:00 +1:00 returns 9/15/2007 8:45:00 AM +01:00
//    mar. 1 janvier 2008 1:00:00 +1:00 returns 1/1/2008 1:00:00 AM +01:00
Dim fmt As DateTimeFormatInfo = New CultureInfo("fr-fr").DateTimeFormat
Dim dateString As String
Dim offsetDate As DateTimeOffset

dateString = "03-12-07"
offsetDate = DateTimeOffset.Parse(dateString, fmt)
Console.WriteLine("{0} returns {1}", _
                  dateString, _
                  offsetDate.ToString())

dateString = "15/09/07 08:45:00 +1:00"
offsetDate = DateTimeOffset.Parse(dateString, fmt)
Console.WriteLine("{0} returns {1}", _
                  dateString, _
                  offsetDate.ToString())

dateString = "mar. 1 janvier 2008 1:00:00 +1:00" 
offsetDate = DateTimeOffset.Parse(dateString, fmt)
Console.WriteLine("{0} returns {1}", _
                  dateString, _
                  offsetDate.ToString())
' The example displays the following output to the console:
'    03-12-07 returns 12/3/2007 12:00:00 AM -08:00
'    15/09/07 08:45:00 +1:00 returns 9/15/2007 8:45:00 AM +01:00
'    mar. 1 janvier 2008 1:00:00 +1:00 returns 1/1/2008 1:00:00 AM +01:00

注釈

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

要素
<Date> "2/10/2007"
<Time> "午後 1:02:03"
<Offset> "-7:30"

これらの各要素は省略可能ですが、 <Offset> は単独では表示できません。 日付>または<時刻>と<共に指定する必要があります。 Date> が指定されていない場合<、既定値は現在の日付です。 Date> が存在するが、その year コンポーネントが 2 桁の数字のみで構成されている場合<、プロパティの値に基づいて、パラメーターの現在のカレンダーのprovider年にCalendar.TwoDigitYearMax変換されます。 Time> がない場合<、既定値は午前 12:00:00 です。 Offset> が見つからない場合<、既定値はローカル タイム ゾーンのオフセットです。 <オフセット> は、協定世界時 (UTC) からの負のオフセットまたは正のオフセットを表すことができます。 どちらの場合も、 <オフセット> には記号記号を含める必要があります。

これら 3 つの要素の形式は、 パラメーターによって formatProvider 定義されます。これは、次のいずれかになります。

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

Offset> で<使用される正符号または負符号は、 + または - である必要があります。 パラメーターの オブジェクトformatProviderまたは PositiveSignNegativeSign プロパティNumberFormatInfoでは定義されません。

こちらもご覧ください

適用対象

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

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

public static DateTimeOffset Parse (ReadOnlySpan<char> input, IFormatProvider? formatProvider = default, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
public static DateTimeOffset Parse (ReadOnlySpan<char> input, IFormatProvider formatProvider = default, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
static member Parse : ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function Parse (input As ReadOnlySpan(Of Char), Optional formatProvider As IFormatProvider = Nothing, Optional styles As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTimeOffset

パラメーター

input
ReadOnlySpan<Char>

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

formatProvider
IFormatProvider

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

styles
DateTimeStyles

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

戻り値

formatProviderstyles で指定された input に格納される日時と等価のオブジェクト。

適用対象

Parse(String, IFormatProvider, DateTimeStyles)

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

public:
 static DateTimeOffset Parse(System::String ^ input, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles);
public static DateTimeOffset Parse (string input, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles);
public static DateTimeOffset Parse (string input, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles);
static member Parse : string * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function Parse (input As String, formatProvider As IFormatProvider, styles As DateTimeStyles) As DateTimeOffset

パラメーター

input
String

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

formatProvider
IFormatProvider

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

styles
DateTimeStyles

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

戻り値

formatProviderstyles で指定された input に格納される日時と等価のオブジェクト。

例外

オフセットが -14 時間より小さいか、14 時間を超えています。

- または -

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

- または -

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

- または -

同時に使用できない DateTimeStyles 値が styles に含まれています。

inputnullです。

input に日付と時刻の有効な文字列形式が含まれていません。

- または -

input に日付または時刻のないオフセット値の文字列形式が含まれています。

次の例は、 メソッドの パラメーターに DateTimeStyles.AssumeLocal、、および DateTimeStyles.AdjustToUniversal の値をstyles渡す効果をParse(String, IFormatProvider, DateTimeStyles)DateTimeStyles.AssumeUniversal示しています。

string dateString;
DateTimeOffset offsetDate;

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

// Assume time is UTC
offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AssumeUniversal);
Console.WriteLine(offsetDate.ToString());   // 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);
Console.WriteLine(offsetDate.ToString());   // Displays 5/1/2008 1:00:00 AM +00:00
let dateString = "05/01/2008 6:00:00"
// Assume time is local
let offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AssumeLocal)
printfn $"{offsetDate}"   // Displays 5/1/2008 6:00:00 AM -07:00

// Assume time is UTC
let offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AssumeUniversal)
printfn $"{offsetDate}"   // Displays 5/1/2008 6:00:00 AM +00:00

// Parse and convert to UTC
let dateString = "05/01/2008 6:00:00AM +5:00"
let offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AdjustToUniversal)
printfn $"{offsetDate}"   // Displays 5/1/2008 1:00:00 AM +00:00
Dim dateString As String
Dim offsetDate As DateTimeOffset

dateString = "05/01/2008 6:00:00"
' Assume time is local 
offsetDate = DateTimeOffset.Parse(dateString, Nothing, DateTimeStyles.AssumeLocal)
Console.WriteLine(offsetDate.ToString())   ' Displays 5/1/2008 6:00:00 AM -07:00

' Assume time is UTC
offsetDate = DateTimeOffset.Parse(dateString, Nothing, DateTimeStyles.AssumeUniversal)
Console.WriteLine(offsetDate.ToString())   ' 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, Nothing, DateTimeStyles.AdjustToUniversal)
Console.WriteLine(offsetDate.ToString())   ' Displays 5/1/2008 1:00:00 AM +00:00

注釈

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

要素
<Date> "2/10/2007"
<Time> "午後 1:02:03"
<Offset> "-7:30"

これらの各要素は省略可能ですが、 <Offset> は単独では表示できません。 日付>または<時刻>と<共に指定する必要があります。 Date> が指定されていない場合<、既定値は現在の日付です。 Date> が存在するが、その year コンポーネントが 2 桁の数字のみで構成されている場合<、プロパティの値に基づいて、パラメーターの現在のカレンダーのprovider年にCalendar.TwoDigitYearMax変換されます。 Time> がない場合<、既定値は午前 12:00:00 です。 Offset が指定されていない場合<、既定値はローカル タイム ゾーンのオフセット、または TimeSpan.Zero パラメーターに または DateTimeStyles.AssumeUniversal 値がDateTimeStyles.AdjustToUniversal指定されている場合ですstyles。> Offset> が存在する場合<は、協定世界時 (UTC) からの負または正のオフセットを表すことができます。 どちらの場合も、 <オフセット> には記号記号を含める必要があります。

これら 3 つの要素の形式は、 パラメーターによって formatProvider 定義されます。これは、次のいずれかになります。

各要素は先頭または末尾の空白で囲むこともできます。また、 <Date> 要素と <Time> 要素には内部空白 (6: 00:00 など) を含めることができます。 内部空白を <含めることはできませんのは、Offset> コンポーネントだけです。

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

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

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

DateTimeStyles メンバー 説明
AdjustToUniversal で表される input 文字列を解析し、必要に応じて UTC に変換します。 これは、文字列を解析してから、返されたDateTimeOffsetオブジェクトの メソッドをDateTimeOffset.ToUniversalTime呼び出すことと同じです。
AllowInnerWhite 有効ですが、この値は無視されます。 内部空白は、日付>と<時刻>の<要素で使用できます。
AllowLeadingWhite 有効ですが、この値は無視されます。 先頭の空白は、解析された文字列内の各コンポーネントの前で許可されます。
AllowTrailingWhite 有効ですが、この値は無視されます。 末尾の空白は、解析された文字列内の各コンポーネントの前で許可されます。
AllowWhiteSpaces これは既定の動作です。 などDateTimeStyles.None、より制限の厳DateTimeStylesしい列挙値を指定してオーバーライドすることはできません。
AssumeLocal パラメーターに input Offset> 要素がない<場合は、ローカル タイム ゾーンのオフセットを指定する必要があることを示します。 これは、 メソッドの既定の Parse 動作です。
AssumeUniversal パラメーターに input Offset> 要素がない<場合は、UTC オフセット (00:00) を指定する必要があることを示します。
None 有効ですが、この値は無視され、影響はありません。
RoundtripKind 構造体には DateTimeOffset プロパティが Kind 含まれていないため、この値は無効です。

DateTimeStyles.NoCurrentDateDefault値のみがサポートされていません。 ArgumentExceptionこの値が パラメーターに含まれている場合は、 styles がスローされます。

こちらもご覧ください

適用対象