FormatException мм: сс

Я хочу извлечь TotalSeconds из строки в формате "MM:SS". Например: 01:20 я спект 80 (секунд)

Я делаю это и получаю исключение:

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

Что я делаю не так??

Спасибо!

3 ответа

Решение

Попробуйте следующее:

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

Узнайте больше о Costum TimeSpan Форматирование на MSDN

Обратная косая черта как побег персонажа. Это означает, что в C# строка форматирования должна быть либо @-заключена в кавычки, либо mm:ss должны быть разделены обратной косой чертой.

Если 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;

В соответствии с руководством по пользовательскому формату TimeSpan здесь http://msdn.microsoft.com/en-us/library/ee372287(v=vs.110).aspx

Вы должны убрать двоеточие с помощью обратного слэша, поэтому ваш формат должен выглядеть следующим образом

TimeSpan.ParseExact(time.ToString(), @"mm\:ss", System.Globalization.CultureInfo.CurrentCulture).TotalSeconds;
Другие вопросы по тегам