首页 > 解决方案 > 向 java.util.date 对象添加毫秒时的错误结果

问题描述

当前时间是Sat Apr 04 15:02:00 AEST 2020

在以下代码段中,我创建了一个 Date 对象并向其添加 86400000L 毫秒(1 天):

Date date = new Date();
date.setTime(date.getTime() + 86400000L);
System.out.println(date);

输出是Sun Apr 05 14:02:00 AEST 2020。我不明白为什么结果只增加了我当前时间的 23 小时,而不是 24 小时。

任何帮助,将不胜感激。

标签: javadatejava.util.date

解决方案


代码工作得很好。您输出上的AEST表示日期为Australian Eastern Standard Time. 谷歌搜索AEST dst显示,在 2020 年 4 月 5 日星期日凌晨 3:00,时钟将“倒退”1 小时。因此,在 DST 更改之前添加 24 小时,只会将时间向前移动 23 小时。

如果您明天运行该代码,您将不会遇到这个“问题”。


推荐阅读