注
この記事では、この API のリファレンス ドキュメントに補足的な解説を提供します。
TryParse(System.String,System.TimeSpan@) メソッド
TimeSpan.TryParse(String, TimeSpan) メソッドは、変換が失敗しても例外をスローしない点を除き、TimeSpan.Parse(String) メソッドに似ています。
s パラメーターには、次の形式の時間間隔の指定が含まれています。
[ws][-]{ d | d.hh:mm[:ss[.ff]] | hh:mm[:ss[.ff]] }[ws]
角かっこ ([ と ]) の要素は省略可能です。 中かっこ ({ と }) で囲まれ、縦棒 (|) で区切られた候補一覧から 1 つを選択する必要があります。 次の表は、それぞれの要素の説明です。
| 要素 | 説明 |
|---|---|
| ws | 省略可能な空白。 |
| - | 負の TimeSpanを示す省略可能な負符号。 |
| d | 0 から10675199までの日数。 |
| . | 日と時間を区切る文化に配慮したシンボル。 インバリアント形式では、ピリオド (".") 文字が使用されます。 |
| はあ | 0 から 23 までの時間。 |
| : | カルチャに依存する時刻区切り記号。 インバリアント形式では、コロン (":") 文字が使用されます。 |
| ミリメートル | 分 (0 から 59 まで)。 |
| ss | 0 ~ 59 の範囲の省略可能な秒。 |
| . | 秒と秒の分数を区切る、文化に依存するシンボル。 インバリアント形式では、ピリオド (".") 文字が使用されます。 |
| ff | 1 から 7 桁の 10 進数で表される、省略可能な秒の小数部分。 |
sのコンポーネントでは、TimeSpan.MinValue以上、TimeSpan.MaxValue以下の時間間隔をまとめて指定する必要があります。
Parse(String) メソッドは、現在のカルチャに特有の形式を用いてsを解析しようとします。
TryParse(String, IFormatProvider, TimeSpan) メソッド
TryParse(String, IFormatProvider, TimeSpan) メソッドは、変換が失敗した場合に例外をスローしない点を除き、Parse(String, IFormatProvider) メソッドに似ています。
input パラメーターには、次の形式の時間間隔の指定が含まれています。
[ws][-]{ d | d.hh:mm[:ss[.ff]] | hh:mm[:ss[.ff]] }[ws]
角かっこ ([ と ]) の要素は省略可能です。 中かっこ ({ と }) で囲まれ、縦棒 (|) で区切られた候補一覧から 1 つを選択する必要があります。 次の表は、それぞれの要素の説明です。
| 要素 | 説明 |
|---|---|
| ws | 省略可能な空白。 |
| - | 負の TimeSpanを示す省略可能な負符号。 |
| d | 0 から10675199までの日数。 |
| . | 日と時間を区切る文化に配慮したシンボル。 インバリアント形式では、ピリオド (".") 文字が使用されます。 |
| はあ | 0 から 23 までの時間。 |
| : | カルチャに依存する時刻区切り記号。 インバリアント形式では、コロン (":") 文字が使用されます。 |
| ミリメートル | 分 (0 から 59 まで)。 |
| ss | 0 ~ 59 の範囲の省略可能な秒。 |
| . | 秒と秒の分数を区切る、文化に依存するシンボル。 インバリアント形式では、ピリオド (".") 文字が使用されます。 |
| ff | 1 から 7 桁の 10 進数で表される、省略可能な秒の小数部分。 |
inputのコンポーネントでは、TimeSpan.MinValue以上、TimeSpan.MaxValue以下の時間間隔をまとめて指定する必要があります。
TryParse(String, IFormatProvider, TimeSpan) メソッドは、inputで指定されたカルチャのカルチャ固有の各形式を使用して、formatProviderの解析を試みます。
formatProvider パラメーターは、返される文字列の形式に関するカルチャ固有の情報を提供するIFormatProvider実装です。
formatProvider パラメーターには、次のいずれかを指定できます。
- 返される文字列に反映される書式設定規則のカルチャを表す CultureInfo オブジェクト。 DateTimeFormatInfo プロパティによって返されるCultureInfo.DateTimeFormat オブジェクトは、返される文字列の書式設定を定義します。
- 返される文字列の書式設定を定義する DateTimeFormatInfo オブジェクト。
- IFormatProvider インターフェイスを実装するカスタム オブジェクト。 その IFormatProvider.GetFormat メソッドは、書式設定情報を提供する DateTimeFormatInfo オブジェクトを返します。
formatProviderがnullされている場合は、現在のカルチャに関連付けられているDateTimeFormatInfo オブジェクトが使用されます。
呼び出し側への注意
場合によっては、解析される文字列内の時間間隔コンポーネントに 7 桁を超える数字が含まれている場合、.NET Framework 3.5 以前のバージョンで成功して true 返された解析操作が失敗し、.NET Framework 4 以降のバージョンで false が返されることがあります。 次の例は、このシナリオを示しています。
string value = "000000006";
TimeSpan interval;
if (TimeSpan.TryParse(value, out interval))
Console.WriteLine($"{value} --> {interval}");
else
Console.WriteLine($"Unable to parse '{value}'");
// Output from .NET Framework 3.5 and earlier versions:
// 000000006 --> 6.00:00:00
// Output from .NET Framework 4:
// Unable to parse //000000006//
let value = "000000006"
match TimeSpan.TryParse value with
| true, interval ->
printfn $"{value} --> {interval}"
| _ ->
printfn $"Unable to parse '{value}'"
// Output from .NET Framework 3.5 and earlier versions:
// 000000006 --> 6.00:00:00
// Output from .NET Framework 4:
// Unable to parse //000000006//
Dim value As String = "000000006"
Dim interval As TimeSpan
If TimeSpan.TryParse(value, interval) Then
Console.WriteLine("{0} --> {1}", value, interval)
Else
Console.WriteLine("Unable to parse '{0}'", value)
End If
' Output from .NET Framework 3.5 and earlier versions:
' 000000006 --> 6.00:00:00
' Output from .NET Framework 4:
' Unable to parse '000000006'
.NET