System.TimeSpan.TryParse 方法
本文提供了此 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]
方括号 ([ and ]) 中的元素是可选的。 需要从大括号({ 和 })括起来的替代项列表中选择一个,并用垂直条(|)分隔。 下表对每个元素进行了描述。
元素 | 说明 |
---|---|
ws | 可选空格。 |
- | 一个可选的减号,指示负 TimeSpan号。 |
d | 天,范围为 0 到 10675199。 |
。 | 区分区域性的符号,用于将天数与小时分隔开来。 固定格式使用句点(“.”)字符。 |
hh | 小时,范围为 0 到 23。 |
: | 区分区域性的时间分隔符符号。 固定格式使用冒号 (“:”) 字符。 |
mm | 分钟,范围为 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]
方括号 ([ and ]) 中的元素是可选的。 需要从大括号({ 和 })括起来的替代项列表中选择一个,并用垂直条(|)分隔。 下表对每个元素进行了描述。
元素 | 说明 |
---|---|
ws | 可选空格。 |
- | 一个可选的减号,指示负 TimeSpan号。 |
d | 天,范围为 0 到 10675199。 |
。 | 区分区域性的符号,用于将天数与小时分隔开来。 固定格式使用句点(“.”)字符。 |
hh | 小时,范围为 0 到 23。 |
: | 区分区域性的时间分隔符符号。 固定格式使用冒号 (“:”) 字符。 |
mm | 分钟,范围为 0 到 59。 |
ss | 可选秒,范围为 0 到 59。 |
。 | 区分区域性的符号,用于将秒数与秒的小数部分分开。 固定格式使用句点(“.”)字符。 |
ff | 可选小数秒,由一到七位十进制数字组成。 |
必须统一指定大于或等于TimeSpan.MinValue且小于或等于的TimeSpan.MaxValue时间间隔的组件input
。
该方法 TryParse(String, IFormatProvider, TimeSpan) 尝试 input
对指定的 formatProvider
区域性使用每个区域性特定的格式进行分析。
参数 formatProvider
是一个 IFormatProvider 实现,提供有关返回字符串格式的区域性特定信息。 该 formatProvider
参数可以是以下任一参数:
- 一个 CultureInfo 对象,表示其格式约定将反映在返回的字符串中的区域性。 DateTimeFormatInfo属性返回CultureInfo.DateTimeFormat的对象定义返回的字符串的格式。
- 定义 DateTimeFormatInfo 返回字符串的格式的对象。
- 实现接口的 IFormatProvider 自定义对象。 其 IFormatProvider.GetFormat 方法返回一个 DateTimeFormatInfo 提供格式设置信息的对象。
null
如果是formatProvider
,DateTimeFormatInfo则使用与当前区域性关联的对象。
给呼叫者的备注
在某些情况下,当要分析的字符串中的时间间隔组件包含七个以上的数字时,分析成功并在 .NET Framework 3.5 及更早版本中返回 true
的操作可能会失败,并在 .NET Framework 4 及更高版本中返回 false
。 以下示例演示了此方案:
string value = "000000006";
TimeSpan interval;
if (TimeSpan.TryParse(value, out interval))
Console.WriteLine("{0} --> {1}", value, interval);
else
Console.WriteLine("Unable to parse '{0}'", 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'