原因
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 設置。
