原因

linux会自动把BIOS改成伦敦时间(GMT+0),windows不知道,错把BIOS当成北京时间(GMT+8),所以windows上的时间会晚8个小时

解决

管理员身份打开终端,输入

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

代码学习

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

  • Reg add: 这是Windows命令行工具 reg.exe 的一个命令,用于向注册表中添加新的键或值。
  • HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation: 这是注册表路径。
    • HKLM 代表 “HKEY_LOCAL_MACHINE”,它是注册表的一个根键,包含计算机的全局设置。
    • SYSTEM\CurrentControlSet\Control\TimeZoneInformation 是该根键下的一个子键,专门用于存储时区相关的信息。
  • /v RealTimeIsUniversal: 这指定要添加或修改的值的名称。
    • /v 表示 “value name”。
    • RealTimeIsUniversal 是一个注册表值的名称。
  • /t REG_DWORD: 这指定值的类型。
    • /t 表示 “value type”。
    • REG_DWORD 表示这是一个 32 位 DWORD 值,通常用于存储整数。
  • /d 1: 这指定要设置的数据。
    • /d 表示 “value data”。
    • 1 是要写入 RealTimeIsUniversal 的值。
  • 这行命令的作用是在注册表的 HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation 路径下,创建一个名为 RealTimeIsUniversal 的 DWORD 值,并将其设置为 1。

RealTimeIsUniversal 的含义:

RealTimeIsUniversal 这个注册表值控制 Windows 如何解释硬件时钟(Real Time Clock,RTC)。

如果 RealTimeIsUniversal 设置为 1,则 Windows 认为硬件时钟存储的是 UTC(协调世界时)时间。

如果 RealTimeIsUniversal 设置为 0(或不存在),则 Windows 认为硬件时钟存储的是本地时间。