安装了ubuntu 16.04和win7双系统,在使用了ubuntu系统重启进入win7后,系统时间总是比北京时间少了8个小时,需要手动的同步时间才行。
原因:
Windows把系统硬件时间当作本地时间(localtime),即操作系统中显示的时间跟BIOS中显示的时间是一样的。
Linux/Unix/Mac把硬件时间当作UTC,操作系统中显示的时间是硬件时间经过换算得来的,比如说北京时间是GMT+8,则系统中显示时间是硬件时间+8。
所以,当ubuntu系统运行时,本地时间18:00的时候,RTC里边存储的是10:00。而win7启动之后将RTC中的10:00作为系统时间显示。
解决办法:
方法1:在Ubuntu中把计算机硬件时间改成系统显示的时间:
timedatectl set-local-rtc 1
方法2:修改 Windows对硬件时间的对待方式,让 Windows把硬件时间当作UTC:
修改注册表
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
(方法1测试可行,方法2修改注册表的方式待测)