一、原因

GMT:Greenwich Mean Time,即格林尼治标准时间,也就是世界时。GMT 以地球自转为基础的时间计量系统,但由于地球自转不均匀,导致 GMT 不精确,现在已经不再作为世界标准时间使用。

UTCUniversal Time Coordinated,即协调世界时。UTC 是以原子时秒长为基础,在时刻上尽量接近于 GMT 的一种时间计量系统。为确保 UTC 与 GMT 相差不会超过 0.9 秒,在有需要的情况下会在 UTC 内加上正或负闰秒。UTC 现在作为世界标准时间使用。

北京处于东八区,即 北京时间 = UTC + 8。

  • 在Linux中,Linux会把UTC写入硬件中,而将UTC+8作为系统时间显示

  • 然而在windows中,系统会直接将硬件时间作为真实的时间显示

在我的Manjaro中,由于Linux自动联网,所以看不到时间异常。

但此时硬件时间已经被修改为UTC时间(当前时间减去八个小时)。

然后到了windows中,自然显示的时间就会提前八个小时。

二、解决办法

  • 在Manjaro中
sudo timedatectl set-local-rtc true
  • 在windows中
# 以管理员身份使用运行
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

# 以上方法无效或64位系统:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_QWORD /f

三、参考文档

  1. CSDN 如何解决 Windows 和 Manjaro 双系统时间差8小时的问题

  2. 少数派 Linux Windows 双系统时间不一致

Logo

更多推荐