TimeSpan.ParseExact с миллисекундами
Я пытаюсь проанализировать строку в формате временной шкалы минут: секунд: миллисекунд. Так 00:00:02
Я бы ожидал 2
миллисекунды. Но это разбор как 20
,
const string tmp = "00:00:02";
var t1 = TimeSpan.Parse(tmp);
// minutes: seconds: milliseconds
var t2 = TimeSpan.ParseExact(tmp, @"m\:s\:ff", System.Globalization.CultureInfo.InvariantCulture);
Почему миллисекунды 20, а не 2?
2 ответа
Решение
Почему миллисекунды 20, а не 2?
Так как 1 sec = 1000 ms
а не 60, как секунды или минуты, следовательно, это 0.020 = 20/1000
, 2 мс будет 0.002 = 2/1000
,
Немного изменил ваш код. Ниже приведен рабочий код:
const string tmp = "00:00:002";
var t1 = TimeSpan.Parse(tmp);
// minutes: seconds: milliseconds
var t2 = TimeSpan.ParseExact(tmp, @"m\:s\:fff", System.Globalization.CultureInfo.InvariantCulture);