2021.8.5
在启动 SpringBoot 的时候发现各种时间和本地时间对不上。
本地时间:
java时间:
后来发现是系统 timezone 文件不对,需要修改。
修改 /etc/localtime 使本地时间正确(对应linux的date指令正确),另外还需要修改 /etc/timezone 使得时区正确(对应 Java 时间正确)。
这里只修改了 timezone 就能正确显示时间了:
/etc/localtime 是用来描述本机时间
/etc/timezone 是用来描述本机所属的时区
在linux中,有一些程序会自己计算时间,不会直接采用带有时区的本机时间格式,会根据UTC时间和本机所属的时区等计算出当前的时间。
比如jdk应用,时区为“Etc/UTC”,本机时间改为北京时间,通过java代码中new 出来的时间还是utc时间,所以必须得修正本机的时区。
修改方式:
1. 在命令终端
$ cd /etc
$ sudo vim timezone

2. 将里面的 Etc/UTC 修改为 Asia/Shanghai

