.
问题
有两台Linux机器:
date 命令查看时间相同
通过 date 命令查看时间,发现两台机器区域语言和时间都相同:
JVM获取系统时间相差12小时
通过最基本的java代码 new Date() 获得时间,发现两台机器的系统时间相差12小时。
其中一台输出的时区与上述date命令相同,都是东八区(CST,中国标准时间)。
另一台输出的时区与date命令不符,是西五区(EDT,美国东部白昼时间)。
根据理论经度,东八区 与 西五区 相差13小时。但因为时值美国夏令时,时刻的值被“人为”调整,所以两台机器相差12小时。
解决方法
可以确定那台 date命令所得时区与JVM所得时区不同的 机器时间是错的。
修复方法就是以正确的方式重新设置系统时区:
<