通过设置正确的时区,可以保证cron、日志等服务的正确性;

更改时区

# Debian 10 / CentOS 7 更改时区为上海
timedatectl set-timezone Asia/Shanghai

检查当前时区

timedatectl是一个命令行实用程序,可以查看和更改系统的时间和日期。

它在所有基于systemd的现代Linux系统上都可用:

timedatectl

以下输出显示系统的时区设置为“ UTC”:

               Local time: Tue 2021-04-27 23:09:01 EDT
           Universal time: Wed 2021-04-28 03:09:01 UTC
                 RTC time: Wed 2021-04-28 03:09:02
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

通过符号链接/etc/localtime/usr/share/zoneinfo目录中的二进制时区标识符来配置系统时区。您还可以使用以下ls命令通过检查符号链接指向的路径来找到时区:

ls -l /etc/localtime

# 屏幕输出:
lrwxrwxrwx 1 root root 36 Apr 27 12:59 /etc/localtime -> /usr/share/zoneinfo/America/New_York

Debian 10 、 CentOS 7 更改时区

在更改时区之前,您需要找出要使用的时区的长名称。时区使用“地区/城市”格式。

要列出所有可用时区:

timedatectl list-timezones
...
America/Monterrey
America/Montevideo
America/Montserrat
America/Nassau
America/New_York
...

确定哪个时区适合您的位置后,以root或具有sudo特权的用户身份运行以下命令:

timedatectl set-timezone your_time_zone

例如,要将系统的时区更改为Asia/Shanghai,可以运行:

timedatectl set-timezone Asia/Shanghai

通过使用以下timedatectl命令检查当前系统的时区来验证更改:

timedatectl

# 屏幕输出:
               Local time: Wed 2021-04-28 11:12:26 CST
           Universal time: Wed 2021-04-28 03:12:26 UTC
                 RTC time: Wed 2021-04-28 03:12:27
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

通过创建符号链接来更改时区

如果您运行的是Debian的旧版本,并且timedatectl系统上没有该命令,则可以通过将/etc/localtime文件符号链接到目录中的时区二进制文件来更改时区/usr/share/zoneinfo

确定要配置的时区,并创建一个符号链接:

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

通过列出/etc/localtime文件或发出timedatectlor date命令来验证更改:

date

# 屏幕输出:
Wed 28 Apr 2021 11:13:23 AM CST