对于许多与系统相关的任务和过程,使用正确的时区至关重要。
例如: cron 守护程序使用系统的时区执行 cron 作业,日志文件中的时间戳基于同一系统的时区。
在 CentOS 上,系统的时区是在安装过程中设置的,但是以后的使用过程中也可以轻松修改。
本文介绍如何在 CentOS 8 系统上设置或更改时区。
检查当前时区
timedatectl
是一个命令行实用程序,可让您查看和更改系统的时间和日期。它在所有基于 systemd 的现代 Linux 系统上都可用:
timedatectl
输出显示系统的时区。在此示例中,时区设置为 UTC :
代码语言:javascript复制ocal 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 :
代码语言:javascript复制timedatectl set-local-rtc 0
系统时区配置在 /etc/localtime
中, /etc/localtime
是一个连接符号,指向到 /usr/share/zoneinfo
目录中的二进制时区标识符。查看时区的另一个选项是使用以下 ls
命令显示符号链接指向的路径:
ls -l /etc/localtime
代码语言:javascript复制lrwxrwxrwx. 1 root root 23 Nov 21 23:30 /etc/localtime -> /usr/share/zoneinfo/UTC
在 CentOS 中更改时区
在更改时区之前,您需要找出要使用的时区的长名称。时区使用“地区/城市”格式。
要列出所有可用时区,请使用 timedatectl
命令带上 list-timezones
选项,如下所示:
timedatectl list-timezones
代码语言:javascript复制...
America/Tijuana
America/Toronto
America/Tortola
America/Vancouver
America/Whitehorse
America/Winnipeg
...
确定了哪个时区适合您的位置后,以 root 或具有 sudo 特权的用户身份运行以下命令:
代码语言:javascript复制sudo timedatectl set-timezone your_time_zone
例如,将系统的时区更改为 America/Toronto
:
sudo timedatectl set-timezone America/Toronto
运行 timedatectl
命令以验证更改:
timedatectl
代码语言:javascript复制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: n
通过创建符号链接来更改时区
如果您正在运行旧版本的 CentOS,并且 timedatectl
系统上没有该命令,则可以通过符号链接 /etc/localtime
链接到 /usr/share/zoneinfo
目录中的时区文件来更改时区。
确定要配置的时区并创建符号链接:
代码语言:javascript复制sudo ln -sf /usr/share/zoneinfo/America/Toronto /etc/localtime
通过列出 /etc/localtime
文件或发出 timedatectl
或 date
命令来验证更改:
date
代码语言:javascript复制Sat Mar 21 17:46:10 EDT 2020
结论
我们向您展示了更改 CentOS 系统的时区的步骤。