一、检查当前时区

timedatectl是一个命令行工具,它允许你查看并且修改系统时间和日期。它在所有现代的基于 systemd 的 Linux 系统中都可以使用:

timedatectl

输出显示了系统的时区。在这个例子中,时区被设置成 UTC:

Local time: Sat 2020-03-21 21:30:22 UTC
           Universal time: Sat 2020-03-21 21:30:22 UTC
                 RTC time: Sat 2020-03-21 21:30:22
                Time zone: UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

如果你获得一个警告说,『The system is configured to read the RTC time in the local time zone.』,运行下面的命令,在 UTC 中使用 RTC:

timedatectl

系统时区通过链接文件/etc/localtime配置,该链接指向/usr/share/zoneinfo目录下的一个二进制时区标识文件。另外一个检查时区的方法就是显示这个链接文件指向的实际路径,使用ls命令:

ls -l /etc/localtime
lrwxrwxrwx. 1 root root 23 Nov 21 23:30 /etc/localtime -> /usr/share/zoneinfo/UTC

二、在 CentOS 中修改时区

在修改时区时,你将需要找到你想要使用的时区的一个很长的名字。时区通常使用”地区/城市”格式.

想要列出所有可用的时区,运行timedatectl命令,加上list-timezones选项:

timedatectl list-timezones
...
America/Tijuana
America/Toronto
America/Tortola
America/Vancouver
America/Whitehorse
America/Winnipeg
...

一旦你识别出哪一个时区能准备描述你的位置,以 root 或者其他有 sudo 权限的用户身份,运行下面的命令:

sudo timedatectl set-timezone your_time_zone

例如,想要将系统时区设置为America/Toronto

sudo timedatectl set-timezone Asia/Shanghai

运行timedatectl命令去验证修改:

timedatectl
Local time: Sat 2020-03-21 17:43:39 EDT
           Universal time: Sat 2020-03-21 21:43:39 UTC
                 RTC time: Sat 2020-03-21 21:43:40
                Time zone: America/Toronto (EDT, -0400)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

三、通过创建一个链接来修改时区

如果你正在运行一个比较古老的 CentOS 版本,并且timedatectl在你的系统上不可用,你可以通过修改时区的链接文件/etc/localtime/usr/share/zoneinfo目录下的时区文件来修改时区。

识别你想要配置的时区,并且创建一个链接文件:

sudo ln -sf /usr/share/zoneinfo/America/Toronto /etc/localtime

通过列出/etc/localtime文件或者触发timedatectl或者date命令,来验证修改:

date
Sat Mar 21 17:46:10 EDT 2020

四、总结

我们已经展示了如何修改你的 CentOS 系统的时区。

来源:雪梦科技