Java日期起始纪元

Java日期起始纪元,java,java.util.date,Java,Java.util.date,java.util.Date类基于自1970年1月1日00:00GMT以来的秒数。那么为什么这段代码 System.out.println(new Date(0)); 打印1970年1月1日星期四01:00:00 GMT?我的本地时区是GMT,所以我希望它打印00:00:00GMT。是一个时间系统,描述自1970年1月1日以来经过了多少时间 因此,当您创建一个经过0毫秒的新java.util.Date对象时,它将返回1970年1月1日 您正在寻找的是。链接可能会有所帮助。我在日期课程上是个新手

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

System.out.println(new Date(0));
打印
1970年1月1日星期四01:00:00 GMT
?我的本地时区是GMT,所以我希望它打印00:00:00GMT。

是一个时间系统,描述自1970年1月1日以来经过了多少时间

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


您正在寻找的是。

链接可能会有所帮助。我在
日期
课程上是个新手,但我认为这会有所帮助。

这其中有一个有趣的原因。请参阅(错误报告) .
它说,“1968年至1972年的英国标准时间实验,通过该实验,时间从格林威治标准时间一年中提前了一个小时。”此外,“Date.toString()生成的本地时间在历史上是正确的,除了时区缩写。它应该是“BST”(本例中为英国标准时间),但这是当前时区实现的已知限制。”

DST问题?你的时区是什么?不是DST。我在英国。在将JVM的时区设置为Europe/London后,我在Java 9上复制了1970年1月1日1:00:00星期四的
。PS:我想对此发表评论,但有人能告诉我如何在评论中添加链接吗?我真的很笨:派斯。单击“注释”文本框旁边的“帮助”链接。该页面将展开并向您展示如何操作,包括添加链接,而您仍在评论框中键入内容。@DodgyCodeException谢谢!我不明白。如果已经过了零毫秒,那么为什么它会显示凌晨1点?这是一个让人联想到欧盟的幻觉。有趣的历史新闻,但它并不能解释为什么会显示格林尼治标准时间的凌晨1点。您的回答可以解释BST的显示,但这不是问题报告的内容。@BasilBourque,正确,我编辑了答案。有趣的是,这个bug也出现在现代API中
Instant.EPOCH.atZone(ZoneId.of(“欧洲/伦敦”)).format(DateTimeFormatter.of模式(“EEE MMM dd HH:mm:ss zzz yyyy”,Locale.ROOT))
也会在我的Java 9上生成
1970年1月1日星期四01:00:00 GMT