我有以下格式的几个字符串:
" 1:15"
" 45"
" 1:30:45"
我需要将它们转换为TimeSpan,但是当我使用TimeSpan.Parse中的一些(例如第一个)时,它将它返回为1小时15分钟,我希望它为1分15秒
非常感谢任何建议!
答案 0 :(得分:5)
您可以使用TimeSpan.ParseExact
的重载,允许您指定精确format specifiers的数组。
var formats = new string[] {@"m\:s", @"\:s", ...};
var timeSpace = TimeSpan.ParseExact(input, formats, CultureInfo.CurrentCulture);
请注意,ParseExact
是在.Net 4中引入的
答案 1 :(得分:1)
参数字符串必须采用下面指定的特定格式:
[ws][-]{ d | [d.]hh:mm[:ss[.ff]] }[ws]
所以“1:15”将被视为......:mm。如果您通过1分15秒,则需要将参数字符串重新格式化为"00:01:15"
。您可以简单地将字符串拆分为相应的days,hour,min,ss变量,并使用它们来分配TimeSpan对象。
MSDN在这里有很好的文档: