gpt4 book ai didi

javascript - 如何在.Net中获取javascript的Date.parse()?

转载 作者:行者123 更新时间:2023-11-28 16:15:15 27 4
gpt4 key购买 nike

我正在使用 .NET 生成一个 JSON 文件,其中包含许多 Date

为了压缩,我想将它们存储为自 1970 年 1 月 1 日以来的毫秒数而不是字符串,然后将它们转换为 Javascript 日期。但是 .Net 自 1970-01-01 以来的毫秒概念与 Javascript 不匹配:

Javascript:

Date.parse("2012-05-15T13:57:57.0000000+00:00")
1337090277000

VB.Net:

Date.Parse("2012-05-15T13:57:57.0000000+00:00").Subtract(New Date(1970,1,1)).TotalMilliseconds
1337101077000.0

相差 10800 秒。 1970-01-01 的差异为 0,并且随着时间的推移而变化。

有没有办法从 .Net 中计算 Javascript 的毫秒数?

最佳答案

您正在将苹果与橙子进行比较。

这正是您在 UTC+3(以色列)时在 javascript 中得到的结果:

Date.parse("2012-05-15T13:57:57.0000000+00:00") - new Date(1970,1,1)
//1334419077000

这是因为当您在 javascript 中执行 new Date 时,这是根据计算机的时区进行的。看起来 vb.net 也是一样。

<小时/>

您将在 JavaScript 中获得正确的数字:

Date.parse("2012-05-15T13:57:57.0000000+00:00") - Date.UTC(1970,1,1)
//1334411877000

在 VB.net 中

    Dim a As Date
a = Date.Parse("2012-05-15T13:57:57.0000000+00:00").ToUniversalTime()
Dim b As Date
b = New Date(1970, 2, 1, 0, 0, 0, DateTimeKind.Utc)
a.Subtract(b).TotalMilliseconds
'1334411877000 Same as javascript
'Note that in javascript, month as 1 is same as 2 in VB.net because months start at 0 in javascript

关于javascript - 如何在.Net中获取javascript的Date.parse()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11701254/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com