修正 Windows 與 Linux 系統時間格式衝突問題

這裡敘述如何修正 Windows 與 Linux 系統時間格式衝突,解決重開機時間就跑掉的問題。

如果一台電腦同時有安裝 Windows 與 Linux 兩種系統(或是 Windows 與 Android),在重新開機切換系統時,系統的時間會跟正確的時間差了幾個小時,這是一個長久以來都一直存在的小問題。

這個問題是由於 Windows 是使用本地時區(local time zone)來儲存系統的時間,而 Linux、Android 與 Mac OS X 等系統則是使用格林威治標準時間(Greenwich Mean Time,GMT)來儲存系統時間,所以當 Windows 設定好的時間被 Linux 讀取時,通常就會產生幾個小時的時差,以台灣來說就會差 8 小時,反之從 Linux 切換為 Windows 系統也會有一樣的問題。


有些 Linux 發行版會自動偵測電腦上是否有安裝 Windows 系統,如果發現存在有 Windows 系統,就會使用本地時區來儲存時間,自動解決這樣的問題,不過在許多的 Linux 系統上都還是會有這樣的問題。

以下我們介紹如何透過修改 Windows 系統的登錄機碼(registry),將 Windows 的時間儲存格式改為格林威治標準時間,讓所有系統的時間格式維持一致。

這裡敘述的方法只適用於 Windows 7 以後的作業系統,Windows XP 與 Vista 無法使用(不過現在應該也沒有人在用這兩種系統了)。

修改 Windows 登錄機碼

Step 1
使用搜尋功能,找尋「regedit」登錄機碼編輯器。

fix-time-problem-dual-boot-computers-windows-linux-1

找尋「regedit」登錄機碼編輯器

Step 2
開啟登錄機碼編輯器之後,找到這個路徑:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
fix-time-problem-dual-boot-computers-windows-linux-2

Windows 登錄機碼編輯器

Step 3
在這個路徑之下新增一個「DWORD(32-位元)值」。

fix-time-problem-dual-boot-computers-windows-linux-3

新增一個「DWORD(32-位元)值」

Step 4
將這個新增的登錄機碼命名為 RealTimeIsUniversal

fix-time-problem-dual-boot-computers-windows-linux-4

將登錄機碼命名為 RealTimeIsUniversal

Step 5
用滑鼠點兩下這個新的 RealTimeIsUniversal 登錄機碼,將它的數值資料從 0 改為 1,並且按下「確定」儲存起來。

fix-time-problem-dual-boot-computers-windows-linux-5

Step 6
最後重新啟動 Windows 系統之後,就完成了。

經過這樣的設定,Windows 就會以格林威治標準時間來儲存系統的時間資料,以後 Windows 與 Linux 就不會再出現時間的差異問題了。

參考資料:liliputing

Linux, Windows

1 Comment

  1. Aiden

    謝謝你,我在 Linode 上面安裝的 windows 時間問題終於解決了

Leave a Reply