记一次在WPF中,在将格式为“DD.HH:mm:ss”字符串转换成TimeSpan时遇到的坑html
若是字符串为:DD.HH:mm:ss,转换结果正确。例如:测试
1 var currentValue = "2.12:25:45.555"; 2 TimeSpan result; 3 var success = TimeSpan.TryParse(currentValue, out result); 4 Console.Write("转换前:"+currentValue); 5 Console.WriteLine("转换后:"+success + " "+ result.ToString());
以上输出结果:转换前:2.12:25:45.555转换后:True 2.12:25:45.555spa
分别更改时间戳不一样部分,使其超过对应的最大值。code
问题:htm
对于毫秒数,咱们知道1s=1000ms。当字符串中毫秒数超过1000时,会是什么状况。blog
如上测试能够看出,在ToString()时,毫秒位数为7位。超过其范围4位。最后四位是什么含义呢?答案:最后四位为纳秒有效数字位。(1ms=10000纳秒)字符串
图1毫秒部分大于3位小于7位get
如图1所示。转换前:2.12:25:45.125555 转换后:True 2.12:25:45.1255550 ,毫秒125it
图2毫秒部分为7位class
如图2所示。转换前:2.12:25:45.1255555 转换后:True 2.12:25:45.1255555 ,毫秒125
图3毫秒部分大于7位
如图3所示。转换前:2.12:25:45.125555555 转换后:False 转换失败
总结: