如何在Ubuntu 18.04上设置或者更改时区

时间:2020-03-05 15:27:31  来源:igfitidea点击:

在Ubuntu上,系统的时区是在安装过程中设置的,但以后可以轻松更改。

对于许多与系统相关的任务和过程,使用正确的时区非常重要。
例如,cron守护程序使用系统的时区执行cron作业,而日志文件中的时间戳基于同一时区。

本教程演示了如何通过命令行或者通过GUI在Ubuntu 18.04及更早版本上设置或者更改时区。
相同的说明适用于任何基于Ubuntu的发行版,包括Kubuntu,Linux Mint和Elementary OS。

准备工作

我们需要以root用户或者具有sudo特权的用户身份登录才能更改系统的时区。

检查当前时区

在Ubuntu和大多数其他Linux发行版中,我们可以使用“ timedatectl”命令来显示和设置当前系统的时间和时区。

timedatectl

如下面的输出所示,时区设置为UTC:

Local time: Wed 2019-01-23 22:45:47 UTC
                  Universal time: Wed 2019-01-23 22:45:47 UTC
                        RTC time: Wed 2019-01-23 22:45:48
                       Time zone: Etc/UTC (UTC, +0000)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

通过将“/etc/localtime”符号链接到“/usr/share/zoneinfo”目录中的二进制时区标识符来配置系统时区。
因此,另一种选择是使用ls命令显示symlink指向的路径:

ls -l /etc/localtime
lrwxrwxrwx 1 root root 27 Dec 10 12:59 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC

另外,我们也可以通过显示“/etc/timezone”文件的内容来检查当前系统的时区。

cat /etc/timezone
Etc/UTC

使用“ timedatectl”命令更改时区

在更改时区之前,我们需要找出要使用的时区的长名称。
时区命名约定通常使用“地区/城市”格式。

要列出所有可用时区,可以在“/usr/share/zoneinfo”目录中列出文件,也可以使用“ timedatectl”命令。

timedatectl list-timezones
...
Europe/Oslo
Europe/Paris
Europe/Podgorica
Europe/Prague
Europe/Riga
Europe/Rome
Europe/Samara
...

一旦确定了哪个时区适合位置,请以sudo用户身份运行以下命令:

sudo timedatectl set-timezone your_time_zone

例如,要将系统的时区更改为“欧洲/罗马”:

sudo timedatectl set-timezone Europe/Rome

运行“ timedatectl”命令以验证更改:

timedatectl
Local time: Thu 2019-01-24 00:27:43 CET
                  Universal time: Wed 2019-01-23 23:27:43 UTC
                        RTC time: Wed 2019-01-23 23:27:44
                       Time zone: Europe/Rome (CET, +0100)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

通过重新配置“ tzdata”来更改时区

如果我们正在运行旧版本的Ubuntu,并且系统上没有'timedatectl'命令,则可以通过重新配置'tzdata'来更改时区。

  • 确定我们要配置的时区。
  • 使用以下tee命令将新时区名称保存到“/etc/timezone”文件中:
echo "Europe/Rome" | sudo tee /etc/timezone
Europe/Rome
  • 运行以下命令来更改系统的时区:
sudo dpkg-reconfigure --frontend noninteractive tzdata
Current default time zone: 'Europe/Rome'
Local time is now:      Thu Jan 24 00:40:48 CET 2019.
Universal Time is now:  Wed Jan 23 23:40:48 UTC 2019.

使用GUI更改时区

如果不是我们要使用的命令行,则可以通过GUI更改当前系统的时区。

  • 单击“设置”图标,打开系统设置窗口,如下图所示:
  • 在系统设置窗口中,单击“日期和时间”选项卡,将“自动时区”设置为“关闭”,然后单击“时区”框:

如果“自动时区”设置为“开”并且我们具有Internet连接,则应根据我们所在的位置自动设置时区。

  • 要选择新时区,我们可以单击地图或者通过搜索列搜索时区。

完成后,单击“×”以关闭窗口。