如何在Debian 9上设置或改变时区

评论 0 浏览 0 2019-03-12

使用正确的时区对许多与系统有关的任务和进程都很重要。例如,cron 守护进程使用系统的时区来执行cron作业,而日志文件中的时间戳也是基于同一系统的时区。

系统的时区是在安装过程中设置的,但在以后的时间里可以很容易地改变。本教程展示了如何在 Debian 9 上设置或改变时区。

先决条件

你所登录的用户必须具有sudo权限,才能够改变系统的时区。

检查当前的时区

在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系统的时区。

如果您有任何问题,请随时留言咨询。

最后更新2023-06-14
0 个评论
标签