讓 Windows 使用 UTC

讓 Windows 使用 UTC

我的系統時鐘一直遇到這個奇怪的問題。有時,當我啟動 Windows 10 時,我的時鐘顯示的時間比目前時間早 5 小時。因此,如果我住的地方(東部時區)是中午,時鐘就會顯示下午 5 點。它會根據夏令時進行調整,並提前 5 小時。

我檢查了我的時區設置,它已設置為正確的時區。我將互聯網時間設定為與 同步time.nist.gov,並且手動同步時間時,它正確設定了時鐘,儘管這樣做時會出現以下錯誤訊息:

“Windows 與 time.nist.gov 同步時發生錯誤。由於逾時期限已過,此操作返回。”

這個問題是在擦除我的硬碟並從頭開始重新安裝 Windows 10 後立即開始的,因此它不是由我此後安裝的任何內容引起的。它僅在 Windows 啟動時發生,但並非每次都會發生。我目前以雙啟動配置安裝了 Ubuntu 16.04(問題在安裝 Ubuntu 之前就開始了),我還沒有看到 Ubuntu 時脈有任何類似的問題。

我在網路上瀏覽過類似的與時間相關的問題,但似乎沒有一個與我的相符。這個問題與我自己的非常相似,但問題是由硬體時鐘關閉引起的,而我電腦上 BIOS 中顯示的時鐘設定為正確的時間。

令我感到奇怪的是,時間是確切地即使調整夏令時,也能休息五小時,一分鐘也不會多。在我看來,Windows 偶爾會與錯誤的時區同步,但我不知道如何驗證或修正它。

更新:事實證明,從 Ubuntu 切換到 Windows 每次都會觸發 5 小時偏移,因此確實是 Ubuntu/Windows 分別將硬體時鐘設定為通用/本地的問題。

答案1

我高度懷疑 Ubuntu 和 Windows 在 hwclock 是本機時間還是 UTC 方面存在分歧。衝突通常是因為 Linux 使用 UTC 中設定的 hwclock,而 Windows 使用本機時區設定的 hwclock。

如果您希望 hwclock 顯示您所在時區的時間,那麼您需要將 linux 變更為非 UTC,這表示讓 linux 使用本機時間。如果您同意 hwclock (BIOS) 採用 UTC,則將 Windows 變更為 UTC。

這裡:

讓 Windows 使用 UTC

筆記:此方法最初在 Windows Vista 和 Server 2008 上不受支持,但在 Vista SP2、Windows 7、Server 2008 R2 和 Windows 8/8.1 中又恢復了。


使 MS Windows 根據硬體時鐘計算時間為 UTC。

建立一個WindowsTimeFixUTC.reg包含以下內容的文件,然後雙擊該文件將內容與註冊表合併:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
 "RealTimeIsUniversal"=dword:00000001

筆記:無論關機時上述登錄設定如何,Windows 時間服務仍會將本機時間寫入 RTC,因此使用此命令停用 Windows 時間服務很方便(如果在 Windows 中仍需要時間同步,請使用任何第三方時間同步解決方案):

sc config w32time start= disabled

扭轉變化。

您可以建立一個包含以下內容的文件,然後雙擊它以合併原始更改,如上所述:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
    "RealTimeIsUniversal"=-

如果 Windows 時間服務已停用,請使用下列命令再次啟用它:

sc config w32time start= demand

讓 Linux 使用「本地」時間

若要告訴您的 Ubuntu 系統硬體時鐘設定為「本地」時間:

Ubuntu 15.04 之前的系統(例如 Ubuntu 14.04 LTS):

編輯 /etc/default/rcS 並新增或更改以下部分

#Set UTC=yes if your hardware clock is set to UTC (GMT)
UTC=no

Ubuntu 15.04 系統以上(例如 Ubuntu 16.04 LTS):開啟終端機並執行下列命令:

timedatectl set-local-rtc 1

相關內容