我想从格式为“MM:SS”的字符串中提取 TotalSeconds。例如:01:20 我预计 80(秒)
我这样做了,我得到了一个例外:
TimeSpan.ParseExact(time.ToString(), "mm:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;
我做错了什么??
谢谢!
我想从格式为“MM:SS”的字符串中提取 TotalSeconds。例如:01:20 我预计 80(秒)
我这样做了,我得到了一个例外:
TimeSpan.ParseExact(time.ToString(), "mm:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;
我做错了什么??
谢谢!
如果time
是 a 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;
尝试以下操作:
TimeSpan.ParseExact(time.ToString(), "mm\\:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;
在MSDN上阅读有关 Costum TimeSpan 格式的更多信息
反斜杠作为转义字符。这意味着,在 C# 中,格式字符串必须是 @-quoted,或者 mm:ss 必须用反斜杠分隔。
根据此处的 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;