Java 日期开始纪元

Java Date start epoch

java.util.Date class 基于自 1970 年 1 月 1 日以来的秒数 00:00 GMT。那么为什么这个代码

System.out.println(new Date(0));

打印Thu Jan 01 01:00:00 GMT 1970?我当地的时区是 GMT,所以我希望它打印 00:00:00 GMT。

Unix Epoch Time 是一个时间系统,描述自 1970 年 1 月 1 日以来已经过去了多少时间。

因此,当您创建一个经过 0 毫秒的新 java.util.Date 对象时,它将 return 1970 年 1 月 1 日。

您要找的是here

This link 可能会有帮助。我在 Date class 方面还是个新手,但我认为这会有所帮助。

这有一个有趣的原因。参考(BST Offset 错误报告) . 它说,"and the experiment with British Standard Time from 1968 to 1972, by which the time was advanced by one hour from GMT throughout the year." 并且进一步说:“Date.toString() 产生的本地时间在历史上是正确的,除了时区缩写。它应该是 "BST"(本例中的英国标准时间),但这是当前 TimeZone 实施的已知限制。”