Arch Linux中禁用UTC解決雙系統時間問題

zhuxiaoxi發表於2017-10-23

原因

Windows雙系統時間不統一在於時間表示有兩個標準:localtime 和 UTC(Coordinated Universal Time) 。UTC 是與時區無關的全球時間標準。儘管概念上有差別,UTC 和 GMT (格林威治時間) 是一樣的。localtime 標準則依賴於當前時區。

時間標準由作業系統設定,Windows 預設使用 localtime,Mac OS 預設使用 UTC 而 UNIX 系列的作業系統兩者都有。使用 Linux 時,最好將硬體時鐘設定為 UTC 標準,並在所有作業系統中使用。這樣 Linux 系統就可以自動調整夏令時設定,而如果使用 localtime 標準那麼系統時間不會根據夏令時自動調整。

方法

通過如下命令可以檢查當前設定,systemd 預設硬體時鐘為協調世界時(UTC)

$ timedatectl status | grep local

硬體時間可以用 hwclock 命令設定,將硬體時間設定為 localtime(解決雙系統時間問題):

# timedatectl set-local-rtc true

硬體時間設定成 UTC(恢復預設設定):

# timedatectl set-local-rtc false

上述命令會自動生成/etc/adjtime,無需單獨設定。

Note: 如果不存在 /etc/adjtime,systemd 會假定硬體時間按 UTC 設定。

參考資料:https://wiki.archlinux.org/index.php/Time

相關文章