DateTimeOffset.TryParse メソッド

定義

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

オーバーロード

TryParse(String, IFormatProvider, DateTimeStyles, DateTimeOffset)

指定した文字列形式の日時を対応する DateTimeOffset 表現に変換できるかどうかを試行し、変換に成功したかどうかを示す値を返します。

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTimeOffset)

指定した日付と時刻のスパン表現の、等価の DateTimeOffset への変換を試み、変換に成功したかどうかを示す値を返します。

TryParse(String, IFormatProvider, DateTimeOffset)

文字列を値に解析しようとします。

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeOffset)

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

TryParse(ReadOnlySpan<Char>, DateTimeOffset)

指定した日付と時刻のスパン表現の、等価の DateTimeOffset への変換を試み、変換に成功したかどうかを示す値を返します。

TryParse(String, DateTimeOffset)

指定した文字列表現の日時を対応する DateTimeOffset 表現に変換できるかどうかを試行し、変換に成功したかどうかを示す値を返します。

TryParse(String, IFormatProvider, DateTimeStyles, DateTimeOffset)

指定した文字列形式の日時を対応する DateTimeOffset 表現に変換できるかどうかを試行し、変換に成功したかどうかを示す値を返します。

public:
 static bool TryParse(System::String ^ input, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTimeOffset % result);
public static bool TryParse (string input, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
public static bool TryParse (string? input, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
static member TryParse : string * IFormatProvider * System.Globalization.DateTimeStyles * DateTimeOffset -> bool
Public Shared Function TryParse (input As String, formatProvider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTimeOffset) As Boolean

パラメーター

input
String

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

formatProvider
IFormatProvider

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

styles
DateTimeStyles

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

result
DateTimeOffset

メソッドが戻ったとき、 には、 の日付と時刻inputに相当する値が格納DateTimeOffsetされます(変換が成功した場合は )。変換に失敗した場合は DateTimeOffset.MinValue です。 input パラメーターが null の場合、または、日付と時刻を表す有効な文字列形式が指定されていない場合、変換に失敗します。 このパラメーターは初期化せずに渡されます。

戻り値

input パラメーターが正常に変換された場合は true。それ以外の場合は false

例外

styles に未定義の DateTimeStyles 値が含まれています。

- または -

NoCurrentDateDefault がサポートされていません。

- または -

styles に相互に排他的な DateTimeStyles 値が含まれています。

次の例では、 メソッドを TryParse(String, IFormatProvider, DateTimeStyles, DateTimeOffset) さまざまな DateTimeStyles 値で呼び出して、さまざまな日付と時刻形式の文字列を解析します。

string dateString;
DateTimeOffset parsedDate;

dateString = "05/01/2008 6:00:00";
// Assume time is local
if (DateTimeOffset.TryParse(dateString, null as IFormatProvider,
                            DateTimeStyles.AssumeLocal,
                            out parsedDate))
   Console.WriteLine("'{0}' was converted to {1}.",
                     dateString, parsedDate.ToString());
else
   Console.WriteLine("Unable to parse '{0}'.", dateString);

// Assume time is UTC
if (DateTimeOffset.TryParse(dateString, null as IFormatProvider,
                            DateTimeStyles.AssumeUniversal,
                            out parsedDate))
   Console.WriteLine("'{0}' was converted to {1}.",
                     dateString, parsedDate.ToString());
else
   Console.WriteLine("Unable to parse '{0}'.", dateString);

// Parse and convert to UTC
dateString = "05/01/2008 6:00:00AM +5:00";
if (DateTimeOffset.TryParse(dateString, null as IFormatProvider,
                           DateTimeStyles.AdjustToUniversal,
                           out parsedDate))
   Console.WriteLine("'{0}' was converted to {1}.",
                     dateString, parsedDate.ToString());
else
   Console.WriteLine("Unable to parse '{0}'.", dateString);
// The example displays the following output to the console:
//    '05/01/2008 6:00:00' was converted to 5/1/2008 6:00:00 AM -07:00.
//    '05/01/2008 6:00:00' was converted to 5/1/2008 6:00:00 AM +00:00.
//    '05/01/2008 6:00:00AM +5:00' was converted to 5/1/2008 1:00:00 AM +00:00.
let dateString = "05/01/2008 6:00:00"
// Assume time is local
match DateTimeOffset.TryParse(dateString, null, DateTimeStyles.AssumeLocal) with
| true, parsedDate ->
    printfn $"'{dateString}' was converted to {parsedDate}."
| _ ->
    printfn $"Unable to parse '{dateString}'."

// Assume time is UTC
match DateTimeOffset.TryParse(dateString, null, DateTimeStyles.AssumeUniversal) with
| true, parsedDate ->
    printfn $"'{dateString}' was converted to {parsedDate}."
| _ ->
    printfn $"Unable to parse '{dateString}'."

// Parse and convert to UTC
let dateString = "05/01/2008 6:00:00AM +5:00"
match DateTimeOffset.TryParse(dateString, null, DateTimeStyles.AdjustToUniversal) with
| true, parsedDate ->
    printfn $"'{dateString}' was converted to {parsedDate}."
| _ ->
    printfn $"Unable to parse '{dateString}'."

// The example displays the following output to the console:
//    '05/01/2008 6:00:00' was converted to 5/1/2008 6:00:00 AM -07:00.
//    '05/01/2008 6:00:00' was converted to 5/1/2008 6:00:00 AM +00:00.
//    '05/01/2008 6:00:00AM +5:00' was converted to 5/1/2008 1:00:00 AM +00:00.
Dim dateString As String
Dim parsedDate As DateTimeOffset

dateString = "05/01/2008 6:00:00"
' Assume time is local 
If DateTimeOffset.TryParse(dateString, Nothing, _
                           DateTimeStyles.AssumeLocal, _
                           parsedDate) Then
   Console.WriteLine("'{0}' was converted to {1}.", _
                     dateString, parsedDate.ToString())
Else
   Console.WriteLine("Unable to parse '{0}'.", dateString)    
End If

' Assume time is UTC
If DateTimeOffset.TryParse(dateString, Nothing, _
                           DateTimeStyles.AssumeUniversal, _
                           parsedDate) Then
   Console.WriteLine("'{0}' was converted to {1}.", _
                     dateString, parsedDate.ToString())
Else
   Console.WriteLine("Unable to parse '{0}'.", dateString)    
End If

' Parse and convert to UTC 
dateString = "05/01/2008 6:00:00AM +5:00"
If DateTimeOffset.TryParse(dateString, Nothing, _
                           DateTimeStyles.AdjustToUniversal, _
                           parsedDate) Then
   Console.WriteLine("'{0}' was converted to {1}.", _
                     dateString, parsedDate.ToString())
Else
   Console.WriteLine("Unable to parse '{0}'.", dateString)    
End If
' The example displays the following output to the console:
'    '05/01/2008 6:00:00' was converted to 5/1/2008 6:00:00 AM -07:00.
'    '05/01/2008 6:00:00' was converted to 5/1/2008 6:00:00 AM +00:00.
'    '05/01/2008 6:00:00AM +5:00' was converted to 5/1/2008 1:00:00 AM +00:00.

注釈

メソッドの TryParse(String, IFormatProvider, DateTimeStyles, DateTimeOffset) このオーバーロードは メソッドに似ています DateTimeOffset.Parse(String, IFormatProvider, DateTimeStyles) が、変換が失敗しても例外はスローされません。 メソッドは、任意の順序で表示でき、空白で区切られた 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 が指定されていない場合<、既定値はローカル タイム ゾーンのオフセット、または Zero 値が DateTimeStyles.AdjustToUniversalDateTimeStyles.AssumeUniversal で指定されている場合は ですstyles。> Offset> が存在する場合<は、協定世界時 (UTC) からの負または正のオフセットを表すことができます。 どちらの場合も、 <Offset> には記号記号を含める必要があります。メソッドは を返します false

文字列は input 、 パラメーターによって提供されるオブジェクトのカルチャ固有の書式設定情報を DateTimeFormatInfo 使用して formatProvider 解析されます。 パラメーターには formatProvider 、次のいずれかを指定できます。

さらに、各要素は先頭または末尾の空白で区切ることができ、日付>と<時刻>の<コンポーネントには内部空白 (6: 00:00 など) を含めることができます。 内部空白を <含めることはできませんのは、Offset> コンポーネントだけです。

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

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

列挙体の次の DateTimeStyles メンバーがサポートされています。

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

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

こちらもご覧ください

適用対象

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTimeOffset)

指定した日付と時刻のスパン表現の、等価の DateTimeOffset への変換を試み、変換に成功したかどうかを示す値を返します。

public:
 static bool TryParse(ReadOnlySpan<char> input, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTimeOffset % result);
public static bool TryParse (ReadOnlySpan<char> input, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
public static bool TryParse (ReadOnlySpan<char> input, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles * DateTimeOffset -> bool
Public Shared Function TryParse (input As ReadOnlySpan(Of Char), formatProvider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTimeOffset) As Boolean

パラメーター

input
ReadOnlySpan<Char>

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

formatProvider
IFormatProvider

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

styles
DateTimeStyles

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

result
DateTimeOffset

メソッドが戻ったとき、 には、 の日付と時刻inputに相当する値が格納DateTimeOffsetされます(変換が成功した場合は )。変換に失敗した場合は DateTimeOffset.MinValue です。 input パラメーターが null の場合、または、日付と時刻を表す有効な文字列形式が指定されていない場合、変換に失敗します。 このパラメーターは初期化せずに渡されます。

戻り値

input パラメーターが正常に変換された場合は true。それ以外の場合は false

適用対象

TryParse(String, IFormatProvider, DateTimeOffset)

文字列を値に解析しようとします。

public:
 static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] DateTimeOffset % result) = IParsable<DateTimeOffset>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out DateTimeOffset result);
static member TryParse : string * IFormatProvider * DateTimeOffset -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As DateTimeOffset) As Boolean

パラメーター

s
String

解析する文字列。

provider
IFormatProvider

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

result
DateTimeOffset

このメソッドが戻ったとき、 には、正常に解析 s された結果または失敗した場合に未定義の値が含まれます。

戻り値

true が正常に解析された場合 s は 。それ以外の場合 falseは 。

適用対象

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeOffset)

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

public:
 static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] DateTimeOffset % result) = ISpanParsable<DateTimeOffset>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out DateTimeOffset result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * DateTimeOffset -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As DateTimeOffset) As Boolean

パラメーター

s
ReadOnlySpan<Char>

解析する文字のスパン。

provider
IFormatProvider

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

result
DateTimeOffset

このメソッドが返されると、 には、正常に解析 sされた結果、または失敗した場合に未定義の値が格納されます。

戻り値

true が正常に解析された場合 s は 。それ以外の場合 falseは 。

適用対象

TryParse(ReadOnlySpan<Char>, DateTimeOffset)

指定した日付と時刻のスパン表現の、等価の DateTimeOffset への変換を試み、変換に成功したかどうかを示す値を返します。

public:
 static bool TryParse(ReadOnlySpan<char> input, [Runtime::InteropServices::Out] DateTimeOffset % result);
public static bool TryParse (ReadOnlySpan<char> input, out DateTimeOffset result);
static member TryParse : ReadOnlySpan<char> * DateTimeOffset -> bool
Public Shared Function TryParse (input As ReadOnlySpan(Of Char), ByRef result As DateTimeOffset) As Boolean

パラメーター

input
ReadOnlySpan<Char>

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

result
DateTimeOffset

メソッドが戻ったとき、 には、 の日付と時刻inputに相当する が含まれますDateTimeOffset。変換が成功した場合は 、変換に失敗した場合は DateTimeOffset.MinValue が格納されます。 input パラメーターが null の場合、または、日付と時刻を表す有効な文字列形式が指定されていない場合、変換に失敗します。 このパラメーターは初期化せずに渡されます。

戻り値

input パラメーターが正常に変換された場合は true。それ以外の場合は false

適用対象

TryParse(String, DateTimeOffset)

指定した文字列表現の日時を対応する DateTimeOffset 表現に変換できるかどうかを試行し、変換に成功したかどうかを示す値を返します。

public:
 static bool TryParse(System::String ^ input, [Runtime::InteropServices::Out] DateTimeOffset % result);
public static bool TryParse (string input, out DateTimeOffset result);
public static bool TryParse (string? input, out DateTimeOffset result);
static member TryParse : string * DateTimeOffset -> bool
Public Shared Function TryParse (input As String, ByRef result As DateTimeOffset) As Boolean

パラメーター

input
String

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

result
DateTimeOffset

メソッドから制御が戻るときに、 の日付と時刻inputに相当する が格納DateTimeOffsetされます (変換が成功した場合は )。変換に失敗した場合は DateTimeOffset.MinValue が格納されます。 input パラメーターが null の場合、または、日付と時刻を表す有効な文字列形式が指定されていない場合、変換に失敗します。 このパラメーターは初期化せずに渡されます。

戻り値

input パラメーターが正常に変換された場合は true。それ以外の場合は false

次の例では、 メソッドを TryParse(String, DateTimeOffset) 呼び出して、さまざまな日付と時刻の形式を持つ複数の文字列を解析します。

DateTimeOffset parsedDate;
string dateString;

// String with date only
dateString = "05/01/2008";
if (DateTimeOffset.TryParse(dateString, out parsedDate))
   Console.WriteLine("{0} was converted to {1}.",
                     dateString, parsedDate);

// String with time only
dateString = "11:36 PM";
if (DateTimeOffset.TryParse(dateString, out parsedDate))
   Console.WriteLine("{0} was converted to {1}.",
                     dateString, parsedDate);

// String with date and offset
dateString = "05/01/2008 +7:00";
if (DateTimeOffset.TryParse(dateString, out parsedDate))
   Console.WriteLine("{0} was converted to {1}.",
                     dateString, parsedDate);

// String with day abbreviation
dateString = "Thu May 01, 2008";
if (DateTimeOffset.TryParse(dateString, out parsedDate))
   Console.WriteLine("{0} was converted to {1}.",
                     dateString, parsedDate);

// String with date, time with AM/PM designator, and offset
dateString = "5/1/2008 10:00 AM -07:00";
if (DateTimeOffset.TryParse(dateString, out parsedDate))
   Console.WriteLine("{0} was converted to {1}.",
                     dateString, parsedDate);
// if (run on 3/29/07, the example displays the following output
// to the console:
//    05/01/2008 was converted to 5/1/2008 12:00:00 AM -07:00.
//    11:36 PM was converted to 3/29/2007 11:36:00 PM -07:00.
//    05/01/2008 +7:00 was converted to 5/1/2008 12:00:00 AM +07:00.
//    Thu May 01, 2008 was converted to 5/1/2008 12:00:00 AM -07:00.
//    5/1/2008 10:00 AM -07:00 was converted to 5/1/2008 10:00:00 AM -07:00.
// String with date only
let dateString = "05/01/2008"
match DateTimeOffset.TryParse dateString with
| true, parsedDate ->
    printfn $"{dateString} was converted to {parsedDate}."
| _ -> ()

// String with time only
let dateString = "11:36 PM"
match DateTimeOffset.TryParse dateString with
| true, parsedDate ->
    printfn $"{dateString} was converted to {parsedDate}."
| _ -> ()

// String with date and offset
let dateString = "05/01/2008 +7:00"
match DateTimeOffset.TryParse dateString with
| true, parsedDate ->
    printfn $"{dateString} was converted to {parsedDate}."
| _ -> ()

// String with day abbreviation
let dateString = "Thu May 01, 2008"
match DateTimeOffset.TryParse dateString with
| true, parsedDate ->
    printfn $"{dateString} was converted to {parsedDate}."
| _ -> ()

// String with date, time with AM/PM designator, and offset
let dateString = "5/1/2008 10:00 AM -07:00"
match DateTimeOffset.TryParse dateString with
| true, parsedDate ->
    printfn $"{dateString} was converted to {parsedDate}."
| _ -> ()

// if (run on 3/29/07, the example displays the following output
// to the console:
//    05/01/2008 was converted to 5/1/2008 12:00:00 AM -07:00.
//    11:36 PM was converted to 3/29/2007 11:36:00 PM -07:00.
//    05/01/2008 +7:00 was converted to 5/1/2008 12:00:00 AM +07:00.
//    Thu May 01, 2008 was converted to 5/1/2008 12:00:00 AM -07:00.
//    5/1/2008 10:00 AM -07:00 was converted to 5/1/2008 10:00:00 AM -07:00.
Dim parsedDate As DateTimeOffset
Dim dateString As String

' String with date only
dateString = "05/01/2008"
If DateTimeOffset.TryParse(dateString, parsedDate) Then _
   Console.WriteLine("{0} was converted to {1}.", _
                     dateString, parsedDate)

' String with time only
dateString = "11:36 PM"
If DateTimeOffset.TryParse(dateString, parsedDate) Then _
   Console.WriteLine("{0} was converted to {1}.", _
                     dateString, parsedDate)

' String with date and offset 
dateString = "05/01/2008 +7:00"
If DateTimeOffset.TryParse(dateString, parsedDate) Then _
   Console.WriteLine("{0} was converted to {1}.", _
                     dateString, parsedDate)

' String with day abbreviation
dateString = "Thu May 01, 2008"
If DateTimeOffset.TryParse(dateString, parsedDate) Then _
   Console.WriteLine("{0} was converted to {1}.", _
                     dateString, parsedDate)

' String with date, time with AM/PM designator, and offset
dateString = "5/1/2008 10:00 AM -07:00"
If DateTimeOffset.TryParse(dateString, parsedDate) Then _
   Console.WriteLine("{0} was converted to {1}.", _
                     dateString, parsedDate)
' If run on 3/29/07, the example displays the following output
' to the console:
'    05/01/2008 was converted to 5/1/2008 12:00:00 AM -07:00.
'    11:36 PM was converted to 3/29/2007 11:36:00 PM -07:00.
'    05/01/2008 +7:00 was converted to 5/1/2008 12:00:00 AM +07:00.
'    Thu May 01, 2008 was converted to 5/1/2008 12:00:00 AM -07:00.
'    5/1/2008 10:00 AM -07:00 was converted to 5/1/2008 10:00:00 AM -07:00.

注釈

メソッドの TryParse(String, DateTimeOffset) このオーバーロードは、 メソッドに似ています DateTimeOffset.Parse(String) が、変換が失敗した場合に例外がスローされないことを除きます。 任意の順序で表示でき、空白で区切られた 3 つの要素を持つ文字列を解析します。 これらの 3 つの要素を次の表に示します。

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

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

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

こちらもご覧ください

適用対象