我需要C#中等效的Java System.currentTimeMillis。基于System.currentTimeMillis的定义:
当前时间与当前时间之间的差(以毫秒为单位) 1970年1月1日午夜(UTC)
我想出了两种方法:
方法1:使用DateTime.UtcNow
和DateTimeKind.Utc
(long)(DateTime.UtcNow
- new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds
方法2:使用DateTime.Now
和DateTimeKind.Local
(long)(DateTime.Now
- new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Local)).TotalMilliseconds
结果:
方式1:15331 4 8186919->这是正确的答案。
WAY 2:15331 3 0186929
任何人都知道为什么WAY 2产生错误的结果吗?
答案 0 :(得分:0)
这可以用DST来解释。这可能是#2的一个因素,具体取决于调用计算机的区域设置DateTime.Now
的时间以及时间。