我正在尝试使用TimeSpan.Parse方法解析时间;但是我得到一个意想不到的结果,因为我试图解析这个应该是
的00:00:45.748
0小时 0分钟 45秒 748毫秒
TimeSpan.Parse("00:00:45.748")
结果:
00:00:45.7480000
我想知道为什么它将毫秒读取为{{1}}而不是7480000
?
答案 0 :(得分:3)
您展示的结果是以文字格式显示 TimeSpan
。
默认情况下,它会显示整个范围。
您显示的字符串实际显示解析成功并且您获得了正确的结果。
如果您想格式化 TimeSpan
,请使用ToString
格式字符串(.NET 4.0及更高版本)。{/ p>
TimeSpan
有custom和standard格式字符串。
在您的情况下,看起来您正在寻找:
TimeSpan
答案 1 :(得分:1)
00:00:45.7480000 == 00:00:45.748
差别就是毫秒上的小数位数
这将根据需要格式化您的输出:
var ts = TimeSpan.Parse("00:00:45.748");
Console.WriteLine(string.Format("{0:dd\\:hh\\:mm\\:ss\\.fff}", ts));
fff是您要显示的小数位数(可以是1到7)。见http://msdn.microsoft.com/en-us/library/ee372287.aspx
请注意,这将需要.NET 4.0或更高版本
答案 2 :(得分:1)
来自TimeSpan.Parse Method (String)
ff - 可选的小数秒,由一到七位十进制组成 位数。强>
您可以使用The "FFF" Custom Format Specifier
像;
TimeSpan ts = TimeSpan.Parse("00:00:45.748");
Console.WriteLine(ts.ToString(@"hh\:mm\:ss\.FFF"), CultureInfo.InvariantCulture);
输出将是;
00:00:45.748
有关更多信息,请查看Standard TimeSpan Format Strings
和Custom TimeSpan Format Strings