如何在 Ubuntu Server 20.04 使用指令設定系統時區

最近因為系統需求需要修改伺服器的時區,所以就寫了一篇文章來記錄一下如何在 Ubuntu Server 20.04 設定機器時區。

查看機器目前時區

通常 Ubuntu 的機器安裝好預設會在 UTC +0 的時區,而檢查方法很簡單只需要輸入 timedatectl 就可以了。除了時區之外還可以看到目前是否有設定 NTP。

$ timedatectl
      Local time: Fri 2022-02-11 02:37:02 UTC
  Universal time: Fri 2022-02-11 02:37:02 UTC
        RTC time: Fri 2022-02-11 02:36:58
       Time zone: Etc/UTC (UTC, +0000)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

列出所有支援的時區資料

在台灣我們會使用 Asia/Taipei 來設定台灣的 +8 時區,想要找其他國家的時區可以使用 timedatectl list-timezones 來找出想要的地區。

$ timedatectl list-timezones
...
Asia/Singapore
Asia/Srednekolymsk
Asia/Taipei
Asia/Tashkent
Asia/Tbilisi
...

在設定的時候我們可能只記得一部分,像是我只記得 Taipei 這時候就可以使用 grep 指令來輔助找到想要的地區。

$ timedatectl list-timezones | grep Taipei
Asia/Taipei

設定時區

確定好國家跟地區之後就可以使用 timedatectl set-timezone 來把時區設定上去了。

$ sudo timedatectl set-timezone Asia/Taipei

確定時區設定完成

設定完成後就可以再使用 timedatectl 來檢查是否有設定成功,如下就可以看到 Time zone 設定為 Asia/Taipei,而時區部分也設定成了 +8。

$ timedatectl
      Local time: Fri 2022-02-11 10:39:54 CST
  Universal time: Fri 2022-02-11 02:39:54 UTC
        RTC time: Fri 2022-02-11 02:39:51
       Time zone: Asia/Taipei (CST, +0800)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

參考資料