使用正确的时区对于许多与系统相关的任务和流程都很重要。例如,cron 守护进程使用系统的时区来执行 cron 作业,并且日志文件中的时间戳基于同一系统的时区。
系统的时区是在安装过程中设置的,但以后可以轻松更改。本教程展示如何在 Debian 9 上设置或更改时区。
先决条件#
您登录时必须拥有的用户须藤权限能够更改系统的时区。
检查当前时区#
在 Debian 和其他现代 Linux 发行版中,timedatectl
命令允许您显示和设置当前系统的时间和时区。
timedatectl
如下输出所示,系统时区设置为“America/Chicago”:
Local time: Mon 2019-03-11 16:46:45 CDT
Universal time: Mon 2019-03-11 21:46:45 UTC
RTC time: Mon 2019-03-11 21:46:45
Time zone: America/Chicago (CDT, -0500)
Network time on: yes
NTP synchronized: no
RTC in local TZ: no
系统时区通过符号链接配置/etc/localtime
到二进制时区标识符/usr/share/zoneinfo
目录。检查时区的其他选项是使用以下命令显示符号链接指向的路径ls 命令
:
ls -l /etc/localtime
lrwxrwxrwx 1 root root 37 Jan 23 03:19 /etc/localtime -> ../usr/share/zoneinfo/America/Chicago
更改 Debian 中的时区#
在更改时区之前,您需要找出要使用的时区的长名称。时区命名约定通常使用“地区/城市”格式。
要列出所有可用时区,您可以列出文件/usr/share/zoneinfo
目录或使用timedatectl
命令。
timedatectl list-timezones
...
Europe/Lisbon
Europe/Ljubljana
Europe/London
Europe/Luxembourg
Europe/Madrid
Europe/Malta
...
确定哪个时区与您的位置准确后,请以 sudo 用户身份运行以下命令:
sudo timedatectl set-timezone your_time_zone
例如,将系统的时区更改为Europe/Ljubljana
你会运行:
sudo timedatectl set-timezone Europe/Ljubljana
通过发出以下命令来验证更改timedatectl
命令:
timedatectl
Local time: Mon 2019-03-11 22:51:27 CET
Universal time: Mon 2019-03-11 21:51:27 UTC
RTC time: Mon 2019-03-11 21:51:26
Time zone: Europe/Ljubljana (CET, +0100)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
通过创建符号链接更改时区#
如果您运行的是较旧的Debian 版本和timedatectl
您的系统上不存在该命令您可以通过符号链接更改时区/etc/localtime
到时区/usr/share/zoneinfo
目录。
删除当前的/etc/localtime
文件或符号链接:
sudo rm -f /etc/localtime
确定您要配置的时区并创建一个符号链接
:
sudo ln -s /usr/share/zoneinfo/Europe/Ljubljana /etc/localtime
您可以通过列出以下内容来确认更改/etc/localtime
归档或发出date
命令:
date
Mon Mar 11 22:55:04 CET 2019
结论#
在本指南中,您学习了如何更改 Debian 系统的时区。
如果您有任何疑问,请随时发表评论。