問題描述
不管是在Windows還是Ubuntu中設置了正確時間,在切換操作系統的時候,還是會出現時間不同步的情況
原因是Windows和Ubuntu在默認情況下看待硬件時間(主板上的BOIS顯示的時間)的方式不一樣
Windows把系統硬件時間當作本地時間(Local time),即操作系統中顯示的時間跟BIOS中顯示的時間是一樣的
Linux/Unix/Mac把硬件時間當作UTC(Universal Time Coordinated,協調世界時),操作系統中顯示的時間是硬件時間經過換算得來
假如你的Ubuntu和Windows中設置的時區都為北京時間東八區,而你在Ubuntu中把當前系統時間更改為9:00AM
。則此時硬件中存儲的實際時間是1:00AM
。這時你重啟進入Windows后,你會發現 windows系統中顯示的時間是1:00AM
,比Ubuntu中慢了八個小時。同理,你在 Windows中更改或用網絡同步了系統時間后,再到Ubuntu中去看,系統就會快了8小時
更改Ubuntu
轉為Local Time
如果是Ubuntu16.04之前的版本,只需要將Ubuntu的UTC時間切換成Local Time
可以直接編輯配置文件,將/etc/default/rcS
文件中的UTC=yes
改成UTC=no
sudo gedit /etc/default/rcS
- 1
如果想要快速修改配置文件
sudo sed -i 's/UTC=no/UTC=yes/' /etc/default/rcS
- 1
使用ntpdate校准時間
如果是Ubuntu16.04,那么配置文件中可能沒有UTC=yes
,這時候可以用ntpdate校准時間
安裝ntpdate
sudo apt-get install ntpdate
- 1
校准時間
sudo ntpdate time.windows.com
- 1
如果你是安裝的Windows+Ubuntu雙系統,需要將時間更新到硬件上,以免Windows的時間不對
sudo hwclock --localtime --systohc
- 1
更改Windows
如果要讓Windows把硬件時間當作UTC,在CMD窗口(快捷鍵Win+R,輸入cmd,回車)中輸入如下命令,可以快速編輯注冊表
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
- 1
或者直接編輯注冊表,打開注冊表編輯器(快捷鍵Win+R,輸入regedit,回車),並找到一下目錄位置
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/TimeZoneInformation/
- 1
添加一項類型為REG_DWORD
的鍵值,命名為RealTimeIsUniversal
,值為1
,重啟后時間即回復正常