2021.8.5

    在启动 SpringBoot 的时候发现各种时间和本地时间对不上。
    本地时间:
    image.png
    java时间:
    image.png
    后来发现是系统 timezone 文件不对,需要修改。
    修改 /etc/localtime 使本地时间正确(对应linux的date指令正确),另外还需要修改 /etc/timezone 使得时区正确(对应 Java 时间正确)。

    这里只修改了 timezone 就能正确显示时间了:
    image.png
    /etc/localtime 是用来描述本机时间
    /etc/timezone 是用来描述本机所属的时区
    在linux中,有一些程序会自己计算时间,不会直接采用带有时区的本机时间格式,会根据UTC时间和本机所属的时区等计算出当前的时间。
    比如jdk应用,时区为“Etc/UTC”,本机时间改为北京时间,通过java代码中new 出来的时间还是utc时间,所以必须得修正本机的时区。

    修改方式:
    1. 在命令终端
    $ cd /etc
    $ sudo vim timezone
    image.png
    2. 将里面的 Etc/UTC 修改为 Asia/Shanghai
    image.png