![](/d/20211018/a3b2b3b12545daed7e13db7e894f23c0.gif)
如果你的 Linux 系統(tǒng)時(shí)區(qū)配置不正確,必需要手動(dòng)調(diào)整到正確的當(dāng)?shù)貢r(shí)區(qū)。NTP 對(duì)時(shí)間的同步處理只計(jì)算當(dāng)?shù)貢r(shí)間與 UTC 時(shí)間的偏移量,因此配置一個(gè) NTP 對(duì)時(shí)間進(jìn)行同步并不能解決時(shí)區(qū)不正確的問(wèn)題。所以大家在用了國(guó)外云計(jì)算服務(wù)商如 Microsoft Azure 或其它 VPS、虛擬機(jī)時(shí),需要注意是否與中國(guó)大陸的時(shí)區(qū)一致。
查看Linux當(dāng)前時(shí)區(qū)
你可以使用如下命令非常容易地就查看到 Linux 系統(tǒng)的當(dāng)前時(shí)區(qū):
date
ls -l /etc/localtime
![](/d/20211018/df2cb4fa6a13fffaaabd60176a74f4d1.gif)
獲取時(shí)區(qū)TZ值
要更改 Linux 系統(tǒng)時(shí)區(qū)首先得獲知你所當(dāng)?shù)貢r(shí)區(qū)的 TZ 值,使用 tzselect 命令即可查看并選擇已安裝的時(shí)區(qū)文件。
執(zhí)行 tzselect 命令
![](/d/20211018/98540f6eb407c47ce3e4b791ab4473a1.gif)
通過(guò)向?qū)нx擇你所在大洲、國(guó)家和城市
tzselect 最終將以 Posix TZ 格式(例如 Asia/Shanghai)輸出你所在的時(shí)區(qū)值,將此記錄下來(lái)。
![](/d/20211018/48c8182d364ef7ec1047be8c84d0eb47.gif)
更改每個(gè)用戶的時(shí)區(qū)
Linux 用戶一個(gè)多用戶系統(tǒng),每個(gè)用戶都可以配置自己所需的時(shí)區(qū),你可以為自己新增一個(gè) TZ 環(huán)境變量:
export TZ='Asia/Shanghai'
執(zhí)行完成之后需要重新登錄系統(tǒng)或刷新 ~/.bashrc 生效。
更改Linux系統(tǒng)時(shí)區(qū)
要更改 Linux 系統(tǒng)整個(gè)系統(tǒng)范圍的時(shí)區(qū)可以使用如下命令:
sudo rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
注意:/usr/share/zoneinfo/Asia/Shanghai 中的具體時(shí)區(qū)請(qǐng)用自己獲取到的 TZ 值進(jìn)行替換。
使用Systemd更改Linux系統(tǒng)時(shí)區(qū)
如果你使用的 Linux 系統(tǒng)使用 Systemd,還可以使用 timedatectl 命令來(lái)更改 Linux 系統(tǒng)范圍的時(shí)區(qū)。在 Systemd 下有一個(gè)名為 systemd-timedated 的系統(tǒng)服務(wù)負(fù)責(zé)調(diào)整系統(tǒng)時(shí)鐘和時(shí)區(qū),我們可以使用 timedatectl 命令對(duì)此系統(tǒng)服務(wù)進(jìn)行配置。
sudo timedatectl set-timezone 'Asia/Shanghai'
![](/d/20211018/de28c6dfcc13941c3ae47191392a6bf4.gif)
最后,如果你發(fā)現(xiàn) Ubuntu 與 Windows 雙系統(tǒng)時(shí)間不同步,可以參考我們之前的文章說(shuō)明和解決辦法。希望可以幫助到大家!