記一次在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 轉換失敗
總結: