
如果你的 Linux 系統(tǒng)時區(qū)配置不正確,必需要手動調(diào)整到正確的當(dāng)?shù)貢r區(qū)。NTP 對時間的同步處理只計算當(dāng)?shù)貢r間與 UTC 時間的偏移量,因此配置一個 NTP 對時間進(jìn)行同步并不能解決時區(qū)不正確的問題。所以大家在用了國外云計算服務(wù)商如 Microsoft Azure 或其它 VPS、虛擬機(jī)時,需要注意是否與中國大陸的時區(qū)一致。
查看Linux當(dāng)前時區(qū)
你可以使用如下命令非常容易地就查看到 Linux 系統(tǒng)的當(dāng)前時區(qū):
date
ls -l /etc/localtime

獲取時區(qū)TZ值
要更改 Linux 系統(tǒng)時區(qū)首先得獲知你所當(dāng)?shù)貢r區(qū)的 TZ 值,使用 tzselect 命令即可查看并選擇已安裝的時區(qū)文件。
執(zhí)行 tzselect 命令

通過向?qū)нx擇你所在大洲、國家和城市
tzselect 最終將以 Posix TZ 格式(例如 Asia/Shanghai)輸出你所在的時區(qū)值,將此記錄下來。

更改每個用戶的時區(qū)
Linux 用戶一個多用戶系統(tǒng),每個用戶都可以配置自己所需的時區(qū),你可以為自己新增一個 TZ 環(huán)境變量:
export TZ='Asia/Shanghai'
執(zhí)行完成之后需要重新登錄系統(tǒng)或刷新 ~/.bashrc 生效。
更改Linux系統(tǒng)時區(qū)
要更改 Linux 系統(tǒng)整個系統(tǒng)范圍的時區(qū)可以使用如下命令:
sudo rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
注意:/usr/share/zoneinfo/Asia/Shanghai 中的具體時區(qū)請用自己獲取到的 TZ 值進(jìn)行替換。
使用Systemd更改Linux系統(tǒng)時區(qū)
如果你使用的 Linux 系統(tǒng)使用 Systemd,還可以使用 timedatectl 命令來更改 Linux 系統(tǒng)范圍的時區(qū)。在 Systemd 下有一個名為 systemd-timedated 的系統(tǒng)服務(wù)負(fù)責(zé)調(diào)整系統(tǒng)時鐘和時區(qū),我們可以使用 timedatectl 命令對此系統(tǒng)服務(wù)進(jìn)行配置。
sudo timedatectl set-timezone 'Asia/Shanghai'

最后,如果你發(fā)現(xiàn) Ubuntu 與 Windows 雙系統(tǒng)時間不同步,可以參考我們之前的文章說明和解決辦法。希望可以幫助到大家!