我想从格式为“MM:SS”的字符串中提取TotalSeconds。例如:01:20我是80(秒)
我这样做,我得到一个例外:
TimeSpan.ParseExact(time.ToString(), "mm:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;
我做错了什么?
谢谢!
答案 0 :(得分:2)
如果time
是DateTime
,您可以执行类似
TimeSpan ts = new TimeSpan(time.Ticks);
Console.WriteLine(ts.TotalSeconds);
如果您希望它按照您的代码工作,那么请注意ToString()
方法的输出与您提供的字符串模式不匹配。将其格式化为输出与所需模式匹配,例如
TimeSpan.ParseExact(time.ToString("mm:ss"), "mm:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;
答案 1 :(得分:2)
请尝试以下操作:
TimeSpan.ParseExact(time.ToString(), "mm\\:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;
在MSDN
上阅读有关Costum TimeSpan格式的更多信息反斜杠是一个转义字符。这意味着,在C#中,格式字符串必须是@ -quoted,或者mm:ss必须用反斜杠分隔。
答案 2 :(得分:0)
根据TimeSpan自定义格式指南http://msdn.microsoft.com/en-us/library/ee372287(v=vs.110).aspx
你必须使用backslach对冒号进行排序,因此你的格式应该是这样的
TimeSpan.ParseExact(time.ToString(), @"mm\:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;