I want to extract the TotalSeconds from a String with format "MM:SS". For instance: 01:20 I spect 80 (seconds)

I do it and I get an Exception:

TimeSpan.ParseExact(time.ToString(), "mm:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;

What do I do wrong??

Thanks!

有帮助吗?

解决方案

Try following:

TimeSpan.ParseExact(time.ToString(), "mm\\:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;

Read more about Costum TimeSpan Formatting on MSDN

Backslash is as an escape character. This means that, in C#, the format string must either be @-quoted, or mm:ss must be separated by backslash.

其他提示

If time is a DateTime, you can simply do something like

TimeSpan ts = new TimeSpan(time.Ticks);
Console.WriteLine(ts.TotalSeconds);

If you want it to work as per your code, then, note the output from ToString() method does not match the string pattern you have provided. Format it to so that the output matches the required pattern, eg,

TimeSpan.ParseExact(time.ToString("mm:ss"), "mm:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;

According to TimeSpan custom format guide here http://msdn.microsoft.com/en-us/library/ee372287(v=vs.110).aspx

You have to sort-of-escape the colon with a backslach, so your format should look like this

TimeSpan.ParseExact(time.ToString(), @"mm\:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top