TimeSpan.Parse解析问题

时间:2013-11-16 21:23:27

标签: c# timespan

我正在尝试使用TimeSpan.Parse方法解析时间;但是我得到一个意想不到的结果,因为我试图解析这个应该是

00:00:45.748

0小时 0分钟 45秒 748毫秒

TimeSpan.Parse("00:00:45.748")

结果:

00:00:45.7480000

我想知道为什么它将毫秒读取为{​​{1}}而不是7480000

3 个答案:

答案 0 :(得分:3)

您展示的结果是以文字格式显示 TimeSpan

默认情况下,它会显示整个范围。

您显示的字符串实际显示解析成功并且您获得了正确的结果。

如果您想格式化 TimeSpan,请使用ToString格式字符串(.NET 4.0及更高版本)。{/ p>

TimeSpancustomstandard格式字符串。

在您的情况下,看起来您正在寻找:

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)

Oded's answer ;

的补充

来自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 StringsCustom TimeSpan Format Strings