1

我有以下格式的几个字符串:

“1:15”
“:45”
“1:30:45”

我需要将它们转换为 TimeSpan,但是当我 TimeSpan.Parse 其中一些(例如第一个)时,它会将其返回为 1 小时 15 分钟,而我希望它为 1 分 15 秒。

任何建议将不胜感激!

4

2 回答 2

5

您可以使用允许您指定精确格式说明符TimeSpan.ParseExact数组的重载。

var formats = new string[] {@"m\:s", @"\:s", ...};
var timeSpace = TimeSpan.ParseExact(input, formats, CultureInfo.CurrentCulture);

请注意,ParseExact在 .Net 4 中引入

于 2013-02-09T04:56:57.727 回答
1

参数字符串需要采用下面指定的特定格式:

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

所以“1:15”将被视为hh:mm。如果您超过 1 分 15 秒,则需要将参数字符串重新格式化为"00:01:15". 您可以简单地将字符串拆分为相应的天、小时、分钟、ss 变量,并使用这些变量来分配您的 TimeSpan 对象。

MSDN 在这里有很好的文档:

http://msdn.microsoft.com/en-us/library/se73z7b9.aspx

于 2013-02-09T04:53:56.987 回答