为什么两个时间戳之间的差与期望值相比有一个小时的偏差?

🏷️ 365beat 📅 2026-07-19 04:03:16 👤 admin 👀 7357 ⭐ 708
为什么两个时间戳之间的差与期望值相比有一个小时的偏差?

您正在经历的主要问题是,您的输入字符串被解释为分配给本地时区,并且在您正在测试的两台机器上有不同的时区。其中一个在两个日期之间有一个DST转换,而另一个没有--这就解释了你一个小时的差异。

您展示的示例还显示了您可能的时区:

您的机器比UTC (UTC+8)提前8小时显示这两种时间戳。世界上有几个地区不使用UTC+8,包括中国、西澳大利亚、伊尔库茨克、俄罗斯等。地球上没有任何地方将UTC+8与DST结合使用。你朋友的机器就不一样了。时间戳显示比世界协调时(UTC+2)早2小时( 2022-04-01 ),比世界协调时(UTC+3)早3小时( 2022-05-15 ).虽然许多国家使用这些补偿(例如东欧使用EET/EEST的国家),但这些地区都没有在这两个日期之间进行DST过渡。请参阅这张DST跃迁表的底部。3月份,世界上所有+2/+3地区都发生了转型。我只能得出结论,您朋友的机器有一些非标准的时区设置,或者它们在时区数据更新上明显落后,或者两者都落后。(如果我在这一点上不正确,请回复!)另外,您的输入字符串格式,2022-04-01 00:00:00不是ECMAScript规范定义的标准日期时间字符串格式。。因此,并不是所有浏览器都能一致地分析它。当前版本的Chrome、Edge和Firefox将将其解释为本地日期和时间,但当前版本的Safari将在“无效日期”中失败。

如果希望在所有浏览器中将其正确解释为本地时间,则需要将其指定为2044-04-01T00:00:00。如果希望将其解释为UTC,则指定为2044-04-01T00:00:00Z。如果您希望用特定的时区偏移量来解释它,那么将其追加,如:2044-04-01T00:00:00+08:00。如果必须以原始格式解析字符串,则不要使用Date对象进行解析。要么使用库(如鲁迅或日期-fns),要么自己使用regex和/或字符串操作技术解析它。

相关推荐 ✨

365bet足球游戏 留学美国,参加校园舞会

留学美国,参加校园舞会

📅 10-23 👀 2923
365bet足球游戏 剑三各区服开服时间汇总,玩转江湖不迷路!
365bet足球游戏 留学美国,参加校园舞会

留学美国,参加校园舞会

📅 10-23 👀 2923
365betvip 『云存储』上传文件

『云存储』上传文件

📅 08-09 👀 2768
365bet足球游戏 如何关闭全民k歌

如何关闭全民k歌

📅 06-28 👀 6260