
如何調整 Linux 系統時區
- Leo
- 技術宅 ( tech geek)
- 2024年10月4日
目錄
最近透過 docker 編譯程式後,發現時間對不上,原來是時區沒有設定的問題。
本來想說時區設定應該滿容易的,沒想到因為 docker 設定時不會互動,所以用一般在 Ubuntu 上使用 timedatectl 設定的方法就會有問題。
因此記錄一下在一般伺服器中以及 docker 中為 Ubuntu 系統設定時區的方法。
在伺服器上調整時區
可以使用 timedatectl 來查看目前的時區設定,並且透過 timedatectl list-timezones 列出所有可用的時區。
透過下列指令,可以將時區設定成 Asia/Taipei。
sudo timedatectl set-timezone Asia/Taipei
sudo dpkg-reconfigure --frontend noninteractive tzdata
在 docker 中為調整時區
在 docker 中調整時區需要透過 tzdata 來設定,並且需要設定 DEBIAN_FRONTEND 變數避免互動設定。
系統及部分程式會透過 /etc/localtime 來判斷時區,tzdata 會透過讀取 /etc/timezone 來設定時區。因此同時修改這兩個地方避免衝突。
export TZ=Asia/Taipei
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime
echo $TZ > /etc/timezone
DEBIAN_FRONTEND="noninteractive" apt-get install -y tzdata


