【现象】
openjdk 1.7.0.121 ,时区:基辅,操作系统:centos 7
时区信息如下
# timedatectl
Local time: 二 2019-04-02 18:30:40 EEST
Universal time: 二 2019-04-02 15:30:40 UTC
RTC time: 二 2019-04-02 15:30:40
Time zone: Europe/Kiev (EEST, +0300)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
日 2019-03-31 02:59:59 EET
日 2019-03-31 04:00:00 EEST
Next DST change: DST ends (the clock jumps one hour backwards) at
日 2019-10-27 03:59:59 EEST
日 2019-10-27 03:00:00 EET
但是用simpleDateFormat 对2019-3-31:3.00.00 之后的time(毫秒数)进行格式化后,没有显示夏令时,而是比夏令时慢了1小时。
更新openjdk 1.7.0.121 到 1.7.0.191 之后解决问题,具体哪个版本开始解决了这个问题还不清楚。
如果不能更新openjdk版本还可以通过以下链接介绍的方法升级时区信息。
https://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html
https://stackoverflow.com/questions/29101788/how-do-i-update-the-timezone-information-for-the-openjdk
时区更新的开源工具
https://www.azul.com/products/open-source-tools/ziupdater-time-zone-tool/