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

评论 0 浏览 0 2019-01-24

在Ubuntu上,系统的时区是在安装过程中设置的,但在以后的时间里可以很容易地改变它。

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

本教程演示了如何在Ubuntu 18.04及以前的版本中通过命令行或GUI来设置或改变时区。同样的说明适用于任何基于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

例如,将系统的时区更改为Europe/Rome

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来改变时区。

  1. 确定你要配置的时区。

  2. 使用下面的tee命令,将新的时区名称保存到/etc/timezone文件中。

    echo "Europe/Rome" | sudo tee /etc/timezone

    输出

    Europe/Rome
  3. 运行下面的命令来改变系统的时区。

    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来改变当前系统的时区。

  1. 通过点击Settings图标,打开系统设置窗口,如下图所示。

    Ubuntu System Settings
  2. 在系统设置窗口中,点击Date & Time标签,将Automatic Time Zone转为OFF,并点击Time Zone框。

    Ubuntu Date & Time

    如果Automatic Time Zone设置为ON,并且你有一个互联网连接,时区应该根据你的位置自动设置。

  3. 要选择新的时区,你可以点击地图或通过搜索栏搜索一个时区。

    Ubuntu Change Timezone

    完成后,点击×,关闭窗口。

总结

在本指南中,我们向您展示了如何改变Ubuntu系统的时区。

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

最后更新2023-05-25
0 个评论
标签