别着急,坐和放宽
用双系统 Windows 和 Ubuntu 的同学其实遇到过一个很有意思的问题,双系统时间不同步,从 Linux 切换回 Windows 后恰好慢了 8 个小时
其实这是因为 Windows 和 Linux 对硬件时钟(RTC)时间的解读方式不同。 我们的主板上会有一颗时钟芯片,存储着物理世界的时间,但 Windows 认为硬件时钟里存储的时间应该是本地时间(比如,你的时区是东八区,硬件时钟就应该是北京时间)。 Linux/Ubuntu 认为硬件时钟里存储的时间应该是 UTC(协调世界时)时间。
假设你的时区是 东八区(UTC+8,北京时间)。真实世界的时间是 北京时间(本地时间)下午4点(16:00),对应的 UTC 时间就是 上午8点(08:00)。
1.正在使用 Windows,系统时间正确显示为 16:00(下午4点)。 2.Windows 认为硬件时钟应该存储本地时间。所以,它会把 16:00这个时间写入硬件时钟。
1.启动电脑,进入 Ubuntu。 2.Ubuntu 去读取硬件时钟,它默认认为硬件时钟上存储的是 UTC 时间。于是它读到了 16:00。 3.Ubuntu 心想:“哦,硬件时钟上说 UTC 时间是 16:00。而我所在的时区是 UTC+8,那么本地时间应该是 UTC 时间加上 8小时。” 4.计算:16:00(它以为的UTC) + 8小时 = 第二天凌晨00:00。 5.Ubuntu 自动通过互联网进行网络时间校准(NTP)。当系统启动联网后,它发现:“咦?我根据硬件时钟算出来的本地时间(00:00)和网络标准时间(16:00)对不上,差了8小时。” 于是,Ubuntu 做了一件聪明事:
再次重启电脑,回到 Windows。