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 に変換します。 |
注釈
Important
日本暦の年号は天皇の治世に基づいているため、変化することが期待されます。 たとえば、2019 年 5 月 1 日は、 JapaneseCalendar と JapaneseLunisolarCalendarのレイワ時代の始まりを迎えています。 このような時代の変化は、これらのカレンダーを使用するすべてのアプリケーションに影響します。 詳細およびアプリケーションが影響を受けるかどうかを判断するには、「 .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 つの要素を次の表に示します。
| 要素 | 例 |
|---|---|
| <日付> | "2/10/2007" |
| <時間> | "1:02:03 PM" |
| <オフセット> | "-7:30" |
これらの各要素は省略可能ですが、 <Offset> は単独では表示できません。 <Date> または <Time> と共に指定する必要があります。 <Date>が見つからない場合、既定値は現在の日付です。 <Time>が見つからない場合、既定値は午前 12:00:00 です。 <Date>が存在するが、その年のコンポーネントが 2 桁の数字のみで構成されている場合は、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に関するカルチャ固有の書式設定情報を提供するオブジェクト。
戻り値
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 つの要素を次の表に示します。
| 要素 | 例 |
|---|---|
| <日付> | "2/10/2007" |
| <時間> | "1:02:03 PM" |
| <オフセット> | "-7:30" |
これらの各要素は省略可能ですが、 <Offset> は単独では表示できません。
<Date> または <Time> と共に指定する必要があります。
<Date>が見つからない場合、既定値は現在の日付です。
<Date>が存在するが、その年のコンポーネントが 2 桁の数字のみで構成されている場合、Calendar.TwoDigitYearMax プロパティの値に基づいて、provider パラメーターの現在のカレンダーの年に変換されます。
<Time>が見つからない場合、既定値は午前 12:00:00 です。
<Offset>が見つからない場合、既定値はローカル タイム ゾーンのオフセットです。
<Offset> は、協定世界時 (UTC) からの負のオフセットまたは正のオフセットを表すことができます。 どちらの場合も、 <Offset> に符号記号を含める必要があります。
これら 3 つの要素の形式は、 formatProvider パラメーターによって定義されます。これは、次のいずれかになります。
CultureInfo パラメーターで使用される書式のカルチャを表現する
inputオブジェクト。 DateTimeFormatInfo プロパティによって返されるCultureInfo.DateTimeFormat オブジェクトは、inputで使用される書式設定を定義します。日付と時刻のデータの形式を定義する DateTimeFormatInfo オブジェクト。
formatproviderがnull場合は、現在のカルチャに対応するCultureInfo オブジェクトが使用されます。
<Offset> で使用される正符号または負符号は、+ または -である必要があります。 これは、formatProvider パラメーターのNumberFormatInfo オブジェクトのPositiveSignプロパティまたはNegativeSignプロパティでは定義されません。
こちらもご覧ください
適用対象
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 値ではありません。
-又は-
styles には、サポートされていない DateTimeStyles 値が含まれています。
-又は-
styles には、一緒 DateTimeStyles 使用できない値が含まれています。
input は nullです。
例
次の例は、DateTimeStyles.AssumeLocal、DateTimeStyles.AssumeUniversal、およびDateTimeStyles.AdjustToUniversal値を Parse(String, IFormatProvider, DateTimeStyles) メソッドの styles パラメーターに渡す効果を示しています。
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 つの要素を次の表に示します。
| 要素 | 例 |
|---|---|
| <日付> | "2/10/2007" |
| <時間> | "1:02:03 PM" |
| <オフセット> | "-7:30" |
これらの各要素は省略可能ですが、 <Offset> は単独では表示できません。
<Date> または <Time> と共に指定する必要があります。
<Date>が見つからない場合、既定値は現在の日付です。
<Date>が存在するが、その年のコンポーネントが 2 桁の数字のみで構成されている場合、Calendar.TwoDigitYearMax プロパティの値に基づいて、provider パラメーターの現在のカレンダーの年に変換されます。
<Time>が見つからない場合、既定値は午前 12:00:00 です。
<Offset>が見つからない場合、既定値はローカル タイム ゾーンのオフセットです。DateTimeStyles.AdjustToUniversalまたはDateTimeStyles.AssumeUniversal値が styles パラメーターで指定されている場合はTimeSpan.Zero。
<Offset>が存在する場合は、協定世界時 (UTC) からの負または正のオフセットを表すことができます。 どちらの場合も、 <Offset> に符号記号を含める必要があります。
これら 3 つの要素の形式は、 formatProvider パラメーターによって定義されます。これは、次のいずれかになります。
CultureInfo パラメーターで使用される書式のカルチャを表現する
inputオブジェクト。 DateTimeFormatInfo プロパティによって返されるCultureInfo.DateTimeFormat オブジェクトは、inputで使用される書式設定を定義します。日付と時刻のデータの形式を定義する DateTimeFormatInfo オブジェクト。
各要素は先頭または末尾の空白で囲むこともできます。また、 <Date> および <Time> 要素には、内側の空白 (6: 00:00 など) を含めることができます。 <Offset> コンポーネントにのみ内部空白を含めることはできません。
formatproviderがnull場合は、現在のカルチャに対応する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がスローされます。