【发布时间】:2021-12-25 19:41:10
【问题描述】:
原始问题
我最近正在研究远在过去的日期时间,比如公元 200 年。使用datetime.datetime(200, 1, 1, 0, 0, 0).timestamp(),我得到了-55855785600 的时间戳。然而,当我使用在线时间戳生成器时,他们给了我一个-55855813002 的时间戳。
当我将两个时间戳都粘贴到 Discord 中时,它显示:
| Datetime | Result | Result (Adjusted to UTC+0) |
|---|---|---|
My timestamp - <t:-55855785600:T>
|
7:36:42 AM |
23:36:42 AM the last day |
Their timestamp - <t:-55855813002:T>
|
8:00:00 AM |
0:00:00 AM |
(我住在 UTC+8)
这种 23 分 18 秒的误差也发生在公元 161 年的日期时间中,所以我认为闰年没有问题。
我的代码有问题吗? UNIX Epoch Times 是否有多个系统导致了这个事件?任何帮助,将不胜感激。谢谢!
编辑
我刚刚查看了时间戳生成器网站的源代码,发现他们使用的是 moment.js。我试过 moment.js' moment().unix() 并且时间戳是准确的。 Python 和 Javascript 时间戳计算器有什么区别吗?
【问题讨论】:
-
您需要设置时区才能获得可比较的结果。如果不这样做,Python 的原始日期时间将是 本地时间(您的操作系统设置),而不是 UTC。
标签: python datetime timestamp momentjs