Windows和Ubuntu雙系統時間相差8個小時的問題


由於要學編程,在windows 10上安裝了Ubuntu16.04雙系統。但是卻造成windows時間老是比實際時間慢八個小時,Ubuntu會與網絡同步時間,但是在程序中調用主板時間時仍然是UTC時間。最近才在網上看到,原來原因在於widows認為BIOS時間是本地時間,ubuntu認為BIOS時間是UTC時間,這樣從ubuntu重啟到ubuntu會發現時間相差8小時,ubuntu會經常與NTP服務器時間進行同步,但windows不會。

先接觸兩個概念:
世界協調時間(Universal Time Coordinated,UTC)
格林威治時間(Greenwich Mean Time,GMT)
(關於這兩個計時概念大家可以網上搜索,我們這里要知道的是ubuntu和windows的系統時間在這兩種計時基礎上如何計算的和解決方法)

先來說windows
windows相信大家接觸的比較多了,系統直接以本地硬件時間作為基准,也就是CMOS中的時間(部分情況下,BIOS被放電后時間被復原成出廠默認時間,然后系統時間跟着就跑了,就是因為這個原因),而這個時間就是我們平時所設置的GTM+8東八區的北京時間。

再來說ubuntu
ubuntu的計時方式是先以本地硬件時間作為UTC,然后在加上時區的時間差后,作為當前系統時間的。這樣以來,同樣的本地硬件時間,在兩個不同的系統中就會出現因為計算方式不同而出現差異。

例如:在ubuntu下設定時間為北京時間中午12:00,硬件時間就是UTC下的4:00,此時在windows下看到的就會是4:00,出現了時間差異。

所以我們需要將ubuntu的時間改成本地時間

以前的方法是

編輯/etc/default/rcS 將UTC=yes改成UTC=no

16.04使用systemd啟動之后,時間也改成了由timedatectl來管理

先在ubuntu下更新一下時間,確保時間無誤:

sudo apt-get install ntpdate
 sudo ntpdate time.windows.com

然后將時間更新到硬件上:

sudo hwclock --localtime --systohc

重新進入windows10,發現時間恢復正常了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM