TimeSpan.Parse错误

时间:2014-08-06 15:45:26

标签: c# parsing timespan

TimeSpan timeTaken = TimeSpan.Parse("51:45:33");

给我错误:

  

发生了'System.OverflowException'类型的异常   mscorlib.dll但未在用户代码中处理

     

其他信息:无法解析TimeSpan,因为at   至少有一个数字组件超出范围或包含   很多数字。

为什么?

2 个答案:

答案 0 :(得分:6)

考虑使用单字符串参数的TimeSpan.Parse方法的文档 输入字符串的格式为:

[ws][-]{ d | [d.]hh:mm[:ss[.ff]] }[ws]

为简单起见,请仅考虑[d.]hh:mm[:ss]部分,其中dss分别为天和秒,并且它们是可选的。

  • hh分量是小时,范围从0到23.
  • d组件是 天,从0到10675199.

在您的情况下,hh:mm:ss格式化输入51:45:33的{​​{1}}个组件等于51,这就是您获得溢出异常的原因。天数可达10675199,因此您需要从51小时(即2天3小时)中选择整天。

结果代码将会显示:

hh

另请注意有关文化敏感符号TimeSpan timeTaken = TimeSpan.Parse("2.3:45:33"); .的信息。

要验证答案,您可以打印总分钟数

:

答案 1 :(得分:1)

以下是您的回答:http://msdn.microsoft.com/en-us/library/se73z7b9(v=vs.110).aspx

hh小时,范围从0到23.

mm分钟,范围从0到59.

ss秒,范围从0到59.