如何以毫秒为单位计算两个DateTime之间的差值
本文关键字:DateTime 两个 之间 为单位 计算 | 更新日期: 2023-09-27 18:17:28
根据msdn DateTime精度为10毫秒。所以在下面的例子中,t2-t1
的精度也是10ms。然而,返回值是"double",这是令人困惑的。
DateTime t1 = DateTime.Now; // precision is 10 ms
....
DateTime t2 = DateTime.Now; // precision is 10 ms
... (t2-t1).TotalMilliseconds; // double (so precision is less than 1 ms???)
我期望int值,因为双精度值在精度为10毫秒时没有意义。我需要在Thread.Sleep()中使用结果值。我应该直接转换为int吗?
DateTime
本身的精度精确到刻度
DateTime.Now
的粒度通常为10或15ms -这是系统时钟的粒度。(请注意,这并不意味着时钟精确到最近的10或15毫秒。)DateTime
上的减法运算符不应该知道或关心这一点-结果只是TimeSpan
,它再次具有刻度级别的精度。
只要转换到int
应该是绝对没问题的。
(顺便说一下,你可能想阅读Eric Lippert关于这方面的博客文章。)