Ubuntu18.04与Win10时间不一致

最近在安装Ubuntu18.04和win10双系统的时候发现两个系统的时间总是相差八个小时,即win10的时间要比Ubuntu早八个小时,这里介绍一个在Ubuntu下的解决方案。

1、为什么时间会不一致

在我们电脑的BIOS中,有着一个记录的时间,windows系统会将BIOS中的时间视为本地时间,即你windows中设置为中国地区,那么这个BIOS的时间对于windows来说就是中国时间。

在Ubuntu中,会将BIOS中的时间视为UTC时间,即Universal Time Coordinated(协调世界时),而中国这边的时间是UTC+8,即正好相差八个小时。

协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。中国大陆采用ISO 8601-1988的《数据元和交换格式信息交换日期和时间表示法》(GB/T 7408-1994)称之为国际协调时间,代替原来的GB/T 7408-1994;中国台湾采用CNS 7648的《资料元及交换格式–资讯交换–日期及时间的表示法》,称之为世界统一时间。

中国大陆、中国香港、中国澳门、中国台湾、蒙古国、新加坡、马来西亚、菲律宾、西澳大利亚州的时间与UTC的时差均为+8,也就是UTC+8。

2、如何修改

先介绍在Ubuntu下的解决方案。

首先我们把硬件时间(BIOS时间)将默认的UTC改为CST,然后重启,使得两个系统的时间保持一致。

1
2
3
4
sudo timedatectl set-local-rtc 1
#上述代码中的1改为0即可将硬件时间修改为默认的UTC时间
sudo reboot
#重启系统使改动生效

接着我们更新一下系统时间

1
2
3
4
sudo apt-get install ntpdate
#这里的操作是安装ntpdate工具
sudo ntpdate time.windows.com
#使用ntpdate工具从time.windows.com上面同步时间

最后我们将时间更新到硬件上,以保证重启后改动不会被还原

1
2
sudo hwclock --localtime --systohc
#这里的代码意思是使用hwclock命令将本地时间localtime从sysclock同步到hwclock

到这里双系统的时间就都正常了。

或者也可以使用windows下的解决方案,使用管理员权限打开powershell,然后输入下面的命令,接着重启就可以了。

1
reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

原理就是:在注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation中添加一个名为RealTimeIsUniversal的值,类型为REG_DWORD,数据为1。此项的作用就是让Windows将硬件时间当作UTC,与Ubuntu的默认设置一致。