Java 和 Java 脚本时间戳不同

Java and JavaScript timestamps are not the same

我在 java 和 java 脚本之间遇到时间戳问题。

我已经找到了这两个关于时间戳的问题,而且我知道这些年来时间的变化。

Timestamp deviation Java vs Javascript for old dates (3600secs)

Why is subtracting these two times (in 1927) giving a strange result?

Basically at midnight at the end of 1927, the clocks went back 5 minutes and 52 seconds. So "1927-12-31 23:54:08" actually happened twice, and it looks like Java is parsing it as the later possible instant for that local date/time.

问题在于,当我有 java 脚本并将时间戳放在那里时,我会得到一个不同于 Java 日期的日期。我需要这个来在网页上显示正确的日期。我知道我可以请求字符串形式的日期,但我更喜欢使用时间戳。

Java 日期 0001-01-01 时间戳为 -62135773200000

Java脚本日期 0001-01-01 时间戳为 -62135596800000

相差-176400000; 49 小时。

有谁知道我能为此做什么。

这可能与从浏览器到 java 不同的 TZ 和 DST 设置有关。为了确定,我建议使用 ISO-8601 格式,如 2008-02-01T09:00:22+05,这是无歧义的

就个人而言,我会避免将数字时间戳从一种语言的系统传递到另一种语言的系统,唯一的原因是这些语言在生成时间戳时使用的算法可能不同。

有一个国际标准 (ISO-8601) 来处理从一个系统到另一个系统传递时间戳。在此您的日期表示变为 0001-01-01T00:00:00+00:00。我建议使用这种方法,因为它是解决这个问题的广泛接受的解决方案。