Linux 检查并且修改时区的方法

有些时候我们买到国外的服务器(云服务器)会发现时区没有调到中国时间,这个问题是必须要解决的,如果你运行的程序没有依靠时间来进行一些验算的话倒还好,如果你的程序需要通过时间来进行加密验算,这个时候时区就很重要了,必须要保证你当前服务器的时区和验算服务器的时区的一致性。

Linux 系统如何查看时区

在 Linux 当中,我们可以通过以下三种办法来查看当前服务器的时区:

  1. 通过 timedatectl 指令查看时区,在 Linux 终端输入以下命令即可:

    timedatectl

    如果一切正常会出现以下内容,可以看到 Time zone 就是我们的时区了:

                   Local time: Sun 2022-05-29 09:54:31 CST
               Universal time: Sun 2022-05-29 01:54:31 UTC
                     RTC time: Sun 2022-05-29 01:54:32
                    Time zone: Asia/Shanghai (CST, +0800)
    System clock synchronized: yes
                  NTP service: active
              RTC in local TZ: no
  2. 通过查看软链接来查看时区,在 Linux 终端输入以下命令即可:

    ls -l /etc/localtime

    如果一切正常会出现以下内容,可以看到这个文件已经软链接到我们的时区文件了:

    /etc/localtime -> /usr/share/zoneinfo/Asia/Shanghai
  3. 通过 date 指令来查看时区,在 Linux 终端输入以下命令即可:

    date

    我们会看到这个输入中, CST 的部分就是我们的时区了,也可以看到服务器的时间:

    Sun 29 May 2022 10:00:00 AM CST

Linux 系统如何修改时区

在 Linux 系统当中,要修改时区其实也和上面其中两种方法差不多,我们有两种方法来修改我们的时区:

  1. 通过 timedatectl 指令修改时区,在 Linux 终端输入以下命令即可(以设置为 Asia/Shanghai 为例):

    timedatectl set-timezone Asia/Shanghai

    如果一切正常,我们再次输入我们的查看时区的命令,就会看到以下信息,可以看到 Time zoneAsia/Shanghai 了:

                   Local time: Sun 2022-05-29 09:54:31 CST
               Universal time: Sun 2022-05-29 01:54:31 UTC
                     RTC time: Sun 2022-05-29 01:54:32
                    Time zone: Asia/Shanghai (CST, +0800)
    System clock synchronized: yes
                  NTP service: active
              RTC in local TZ: no
  2. 通过修改软链接来修改时区,在 Linux 终端输入以下命令即可:

    sudo rm -rf /etc/localtime
    sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    然后我们可以通过输入查看时间的命令来验证是否修改成功,如果成功的话就会输出如下内容( CST就是 Asia/Shanghai 的时区):

    Sun 29 May 2022 10:00:00 AM CST