原理:
Windows把硬件时间当作本地时间,也就以为着Windows系统中显示的时间和BIOS中显示的时间是一样的.
Ubuntu把硬件时间当作UTC,也就以为着Ubuntu系统中显示的时间是硬件时间经过换算得到的.显示的时间是硬件时间+时区.而Ubuntu会定时更新时间,所以我们看到的Ubuntu时间是正常的.
为了让两个系统显示的时间都是正确的,有两种方案:
1.更改Windows中注册表
在网上找到的没用的方法:
windows系统中的注册表设置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInfomation\中添加一项数据类型为REG_DWORD,名称为RealTimesUniversal,值设为1或者用命令行:
echo off color 0a Reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInfomation /v RealTimeIsUniversal /t REG_DWORD /d 1
然而我并不能这么做,因为我的注册表中并没有SYSTEM这个目录
2.设置Ubuntu将硬件时间当作本地时间,不作为UTC时间即可.
不可行的办法
修改/etc/default/rcs,设置不使用UTC时间,设置如下:UTF=no;
似乎因为版本问题,从16版开始,Ubuntu已经由一个叫做timedatectl的东西来管理时间了,所以修改rcs没有用了.况且我根本没找到rcs这个文件
已经试验成功的方法
使用timedatectl功能就可以解决了
执行命令
timedatectl set-local-rtc 1 --adjust-system-clock