gpt4 book ai didi

javascript - 这是什么时间格式,如何将其转换为纪元?

转载 作者:行者123 更新时间:2023-11-30 12:57:03 25 4
gpt4 key购买 nike

我有两种格式的时间戳数据,其中 3F536DDA -> 13783970857680003F52C3C3 -> 1378353476238000。我似乎无法弄清楚什么格式 3F536DDA 是什么,也不知道如何将它转换为有问题的时代。任何帮助将不胜感激!

更新

我发现了这个:

自 1980 年 1 月 6 日格林威治标准时间 00:00:00 以来以秒为单位的修复时间的 8 位十六进制表示。

这似乎是 GPS 时间。

我可能从这里的转换中遗漏了一些东西,我只是减去 1980 年 1 月 6 日和 1970 年 1 月 1 日之间的差异...

time = (1378397085 - 315964800)

console.log '3F536DDA' # What I expected
console.log time.toString(16) # What I get: 3F536D1D

最佳答案

好吧,这些看起来就像十六进制数字,自 1/1/1970 UTC 以来的秒数。

3F536DDA hex == 1062432218 dec == Mon, 01 Sep 2003 16:03:38 GMT
3F52C3C3 hex == 1062388675 dec == Mon, 01 Sep 2003 03:57:55 GMT

自 1/1/1970 UTC 以来,其他数字看起来像十进制微秒,但它们不等于其他数字:

1378397085768000 == Thu, 05 Sep 2013 16:04:45 GMT
1378353476238000 == Thu, 05 Sep 2013 03:57:56 GMT

如果这些不是您想要的日期,则可能涉及其他时间。例如,如果它们起源于 Microsoft Windows,则它们肯定会有所不同。

你从哪里弄来的?这些知识将有助于他们的解释。

更新

既然你说它们是基于 1980 年 1 月 6 日的纪元,那么你可以这样做:

var d = new Date(Date.UTC(1980,0,6) + parseInt('3F536DDA', 16) * 1000);
d.toISOString(); // 2013-09-05T16:03:38.000Z

或者更好的是,使用 moment.js

var m = moment.utc("1980-01-06").add('seconds', parseInt('3F536DDA', 16));
m.toISOString(); // 2013-09-05T16:03:38.000Z

关于javascript - 这是什么时间格式,如何将其转换为纪元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18691061/

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