TimeSpan.ParseExact 以毫秒计
TimeSpan.ParseExact with Milliseconds
我正在尝试将字符串解析为 分钟:秒:毫秒 的时间跨度格式。所以 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?
稍微修改了您的代码。以下是工作代码:
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);
Why is milliseconds 20 and not 2?
因为 1 sec = 1000 ms
而不是像秒或分钟那样的 60,因此它是 0.020 = 20/1000
,2 毫秒将是 0.002 = 2/1000
。
我正在尝试将字符串解析为 分钟:秒:毫秒 的时间跨度格式。所以 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?
稍微修改了您的代码。以下是工作代码:
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);
Why is milliseconds 20 and not 2?
因为 1 sec = 1000 ms
而不是像秒或分钟那样的 60,因此它是 0.020 = 20/1000
,2 毫秒将是 0.002 = 2/1000
。