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

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

戻り値

DateTimeOffset

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 PM"
<Offset> "-7:30"

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

文字列は 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

パラメーター

provider
IFormatProvider

戻り値

DateTimeOffset

解析 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 に関するカルチャ固有の書式情報を提供するオブジェクト。

戻り値

DateTimeOffset

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 PM"
<Offset> "-7:30"

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

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

  • CultureInfoパラメーターで書式設定が使用されるカルチャをinput表すオブジェクト。 プロパティによって返されるオブジェクトは DateTimeFormatInfoCultureInfo.DateTimeFormat で使用される input書式設定を定義します。

  • DateTimeFormatInfo日付と時刻のデータの形式を定義するオブジェクト。

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

使用される <Offset> 正符号または負符号は、+ または -のいずれかである必要があります。 これは、パラメーターのPositiveSignオブジェクトformatProviderまたはNegativeSignプロパティ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 です。

戻り値

DateTimeOffset

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 です。

戻り値

DateTimeOffset

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 PM"
<Offset> "-7:30"

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

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

  • CultureInfoパラメーターで書式設定が使用されるカルチャをinput表すオブジェクト。 プロパティによって返されるオブジェクトは DateTimeFormatInfoCultureInfo.DateTimeFormat で使用される input書式設定を定義します。

  • DateTimeFormatInfo日付と時刻のデータの形式を定義するオブジェクト。

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

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

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

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

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

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

こちらもご覧ください

適用対象