java - 向 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 小时。
任何帮助,将不胜感激。
解决方案
代码工作得很好。您输出上的AEST
表示日期为Australian Eastern Standard Time
. 谷歌搜索AEST dst
显示,在 2020 年 4 月 5 日星期日凌晨 3:00,时钟将“倒退”1 小时。因此,在 DST 更改之前添加 24 小时,只会将时间向前移动 23 小时。
如果您明天运行该代码,您将不会遇到这个“问题”。
推荐阅读
- java - 如何从Java中的网页url获取css绝对路径?
- php - Ubuntu 20.04 和 Microsoft SQL Server 连接问题
- python - CountVectorizer 假设将数据集转换为稀疏矩阵,但它没有这样做
- python - 无法安装 pyttsx3
- reactjs - 在考虑性能的同时,是否有更新 UI 和数据库的标准方法?
- linux - 另一个文件 bash 脚本中的“adduser”有什么问题
- php - WordPress会话不断刷新不一致
- c++ - 使用 opencv/c++ 将像素转换为 mm --> 两点之间的距离
- python - 如何在 matplotlib 图中添加点图例?
- c - 比较函数作为稍后使用的参数