解决 Windows、Mac 和 Linux 时间不一致的问题

发现问题

帮朋友安装双系统( Windows 和 MAC )或者( Windows 和 Linux )时候,从一个系统重启进入另一个系统时,PC时间总是不一样,永远会有8小时的差别,尽管不影响使用,但是每次都要手动调,还是挺难受的。
为了复盘问题,在pc上我分别安装了Windows、MAC、MINT(Linux)三系统,三者之间反复重启,问题只会出现在Windows和MAC,或者Windows和Linux之间。

思考问题

这个是一个关于时间的问题,我们就先来了解一下关于时间的概念:
UTC 即 Universal Time Coordinated,协调世界时
GMT 即Greenwich Mean Time,格林尼治平时

Windows 与 Mac/Linux 缺省看待系统硬件时间的方式是不一样的:

  • Windows 把系统硬件时间当作本地时间 (local time),即操作系统中显示的时间跟 BIOS 中显示的时间是一样的。
  • Linux/Unix/Mac 把硬件时间当作 UTC,操作系统中显示的时间是硬件时间经过换算得来的,比如说北京时间是GMT+8,则系统中显示时间是 硬件时间 + 8

如此一来问题就出现了,当你从Windows重启切换到其他系统时,就会出现8个小时的时间差。

解决问题

方案一:让 Mac 和 Ubuntu 不使用 UTC 时间,与 Windows 保持一致。

方案一结论:修改处较多,修改复杂,不建议。

方案二:让 Windows 把硬件时间当作 UTC

方法一:在Windows下将如下内容写到一个.reg文件中,双击运行,最后重启即可!

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001

方法二:开始 -> 运行 -> CMD,打开命令行程序 (要以管理员方式打开命令行程序方可有权限访问注册表),在命令行中输入下面命令并回车

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