本文提供了此 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]
方括号 ([ 和 ]) 中的元素是可选的。 需要从大括号({ 和 })括起来的替代项列表中选择一个,并用垂直条(|)分隔。 下表对每个元素进行了描述。
元素 | DESCRIPTION |
---|---|
ws | 可选空格。 |
- | 一个用于表示负 TimeSpan 的可选减号。 |
d | 天,范围为 0 到 10675199。 |
. | 用于区分天与小时的文化敏感符号。 固定格式使用句点(“.”)字符。 |
HH | 小时,范围为 0 到 23。 |
: | 区分区域性的时间分隔符。 固定格式使用冒号 (":") 字符。 |
毫米 | 分钟,范围为 0 到 59。 |
ss | 可选秒,范围为 0 到 59。 |
. | 用于将秒与秒的小数部分分开的区域性敏感符号。 固定格式使用句点(“.”)字符。 |
ff | 可选小数秒,由一到七位十进制数字组成。 |
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]
方括号 ([ 和 ]) 中的元素是可选的。 需要从大括号({ 和 })括起来的替代项列表中选择一个,并用垂直条(|)分隔。 下表对每个元素进行了描述。
元素 | DESCRIPTION |
---|---|
ws | 可选空格。 |
- | 一个用于表示负 TimeSpan 的可选减号。 |
d | 天,范围为 0 到 10675199。 |
. | 用于区分天与小时的文化敏感符号。 固定格式使用句点(“.”)字符。 |
HH | 小时,范围为 0 到 23。 |
: | 区分区域性的时间分隔符。 固定格式使用冒号 (":") 字符。 |
毫米 | 分钟,范围为 0 到 59。 |
ss | 可选秒,范围为 0 到 59。 |
. | 用于将秒与秒的小数部分分开的区域性敏感符号。 固定格式使用句点(“.”)字符。 |
ff | 可选小数秒,由一到七位十进制数字组成。 |
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 对象。
给调用方的说明
在某些情况下,当要分析的字符串中的时间间隔组件包含七个以上的数字时,分析成功并在 .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'