DateTimeOffset.Parse メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定した文字列形式の日付と時刻を等価の DateTimeOffset の値に変換します。
オーバーロード
Parse(String) |
指定した文字列形式の日付、時刻、およびオフセットを等価の DateTimeOffset の値に変換します。 |
Parse(ReadOnlySpan<Char>, IFormatProvider) |
文字のスパンを値に解析します。 |
Parse(String, IFormatProvider) |
指定したカルチャ固有の書式情報を使用して、指定した日付と時刻の文字列形式を等価の DateTimeOffset の値に変換します。 |
Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) |
指定したカルチャ固有の書式情報と書式スタイルを使用して、指定した日付と時刻のスパン表現を等価の DateTimeOffset に変換します。 |
Parse(String, IFormatProvider, DateTimeStyles) |
指定したカルチャ固有の書式情報と書式スタイルを使用して、指定した日付と時刻の文字列形式を等価の DateTimeOffset の値に変換します。 |
注釈
重要
和暦の時代 (年号) は天皇の代に基づいているため、変更されることが予想されます。 たとえば、JapaneseCalendar と JapaneseLunisolarCalendar において、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 時間を超えています。
input
が null
です。
例
次の例では、メソッドを 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
パラメーター
- s
- ReadOnlySpan<Char>
- provider
- IFormatProvider
戻り値
解析 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 時間を超えています。
input
が null
です。
例
次の例では、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
表すオブジェクト。 プロパティによって返されるオブジェクトは DateTimeFormatInfo 、 CultureInfo.DateTimeFormat で使用されるinput
書式設定を定義します。DateTimeFormatInfo日付と時刻のデータの形式を定義するオブジェクト。
ある場合 formatprovider
は null
、現在の 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 です。
戻り値
formatProvider
と styles
で指定された 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 です。
戻り値
formatProvider
と styles
で指定された input
に格納される日時と等価のオブジェクト。
例外
オフセットが -14 時間より小さいか、14 時間を超えています。
- または -
styles
は有効な DateTimeStyles 値ではありません。
- または -
サポートされていない DateTimeStyles 値が styles
に含まれています。
- または -
同時に使用できない DateTimeStyles 値が styles
に含まれています。
input
が null
です。
例
次の例は、メソッドのパラメーターに 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
表すオブジェクト。 プロパティによって返されるオブジェクトは DateTimeFormatInfo 、 CultureInfo.DateTimeFormat で使用されるinput
書式設定を定義します。DateTimeFormatInfo日付と時刻のデータの形式を定義するオブジェクト。
各要素は先頭または末尾の空白で囲むこともできます。また、要素には<Time>内側の<Date>空白 (6: 00:00 など) を含めることもできます。 内部空白を <Offset> 含めることはできません。
ある場合 formatprovider
は null
、現在の 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 ArgumentException が styles
スローされます。