Java脚本的Date.UTC方法与Date.UTC(2004,3,1)
.NET
中使用的Date.UTC(2004,3,1)
类似吗?
我试图使用DateTime.ToFileTimeUtc()但它返回的是不同的值。
例如,如果我有这个日期
javascript 1075766400000
将返回此DateTime.ToFileTimeUtc()
但是127175616000000000
会返回此 TimeSpan timeSpan = new DateTime(2004, 3, 1, 0, 0, 0, DateTimeKind.Utc) - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
long milliSeconds = (long)timeSpan.TotalMilliseconds; // equal to 1073088000000
需要帮助
更新
当我使用此
时milliSeconds
1073088000000
等于Date.UTC(2004,3,1)
但如果是1075766400000
,则为00:04:27.8400000
http://jsfiddle.net/M3aJQ/
差异为{{1}}
答案 0 :(得分:1)
正如@Jon Marting所说;
DateTime Constructor (Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)
并使用DateTimeKind.Utc
public DateTime(
int year,
int month,
int day,
int hour,
int minute,
int second,
DateTimeKind kind
)
答案 1 :(得分:1)
DateTime
方法ToUniversalTime()
将正确转换为UTC。
DateTime now = DateTime.Now;
DateTime utc = now.ToUniversalTime();
当然.Now
中的UTC
你也可以使用:
DateTime utcnow = DateTime.UtcNow;
答案 2 :(得分:0)
DateTime.ToFileTimeUtc()在JavaScript中使用与Date.UTC()不同的纪元。这就是为什么你得到不同的答案。根据{{3}},它返回“自公元1601年1月1日午夜12点(世界时间)协调世界时(UTC)午夜12点以来经过的100纳秒间隔的数量。”
然而,我相信JavaScript的Date.UTC方法返回自1970年1月1日午夜以来的毫秒数。
你可以自己做,比如.net:
TimeSpan timeSpan = new DateTime(2004, 3, 6, 0, 0, 0, DateTimeKind.Utc) - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
long milliSeconds = (long)timeSpan.TotalMilliseconds;