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);
Другие вопросы по тегам