简介

本文主要介绍使用双系统(Windows 和 Ubuntu)时,如何解决时间不一致的问题。本文提供 Windows 下和 Linux 下两种解决方案,选择方便的方案进行即可。

问题原因

该问题出现是因为Windows和Linux对待硬件时间的处理方法不同(注意是硬件时间,这也就是为什么时间异常时点击与服务器同步就能恢复的原因),Linux将硬件时间看作UTC时间,因此在中国的时区条件下会加上8个小时作为系统时间,Windows则将硬件时间直接作为系统时间。这也就是为什么,双系统切换时会存在8个小时的差距。

Windows下解决方案

右击左下角的开始图标选择以管理员身份打开Windows Powershell(Win7及以前的Windows版本使用CMD),然后输入下面的命令,显示执行成功后重启Window系统即可。

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

这个命令的效果是将Windows识别硬件时间为UTC-0而不是现在的UTC+8,方法是将注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\中添加一项数据类型为REG_DWORD,名称为RealTimeIsUniversal,值设为1。

Ubuntu下解决方案

通过修改硬件同步的方法来进行双系统同步,具体命令如下。其操作流程为安装ntpdate连接到Windows的时间服务器更新硬件,操作完成后重启系统

sudo apt-get install ntpdate
sudo ntpdate time.windows.com
sudo hwclock --localtime --systohc

补充说明

使用了两种在两个系统下操作的主流方法,经测试两种方法都是有效的,解决该问题选择其中一种方案即可。

感谢大佬:周先生爱吃素