windows 和 Ubuntu 双系统时间问题怎么处理

  • Windows:默认将硬件时钟视为 本地时间(Local Time)
  • Ubuntu/Linux:默认将硬件时钟视为 UTC 时间(协调世界时)

当你从一个系统切换到另一个时,时间就会相差 8 小时(或你所在时区的偏移量)。


推荐方案:让 Windows 使用 UTC(更干净)

这是更现代、更合理的做法,避免 Linux 去迁就 Windows。

在 Windows 中设置 UTC 模式

以管理员身份运行 CMD 或 PowerShell,执行:

1
reg add "HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /t REG_DWORD /d 1 /f

然后重启 Windows。

⚠️ 注意:Windows 11 某些版本可能对此支持有问题,如果遇到异常,可以改用下面的方案二。


备选方案:让 Ubuntu 使用本地时间(更兼容)

如果你不想改动 Windows,可以让 Ubuntu 把硬件时钟当作本地时间。

在 Ubuntu 中设置本地时间模式

1
timedatectl set-local-rtc 1 --adjust-system-clock

查看状态确认:

1
timedatectl status

如果看到 RTC in local TZ: yes 即表示成功。

若要恢复 UTC 模式

1
timedatectl set-local-rtc 0 --adjust-system-clock

额外建议

  1. 关闭自动时区同步冲突:确保两个系统都开启了网络时间同步(NTP),这样即使硬件时钟有偏差,也能快速自动校正。

    • Windows:设置 → 日期和时间 → 自动设置时间
    • Ubuntu:timedatectl set-ntp true
  2. 时区设置正确:两个系统都要设置为你实际所在的时区(如 Asia/Shanghai)。


总结:推荐方案一(改 Windows 用 UTC),因为这是 Linux 世界的标准做法,且不会导致系统间的时间逻辑混乱。如果 Windows 端出现问题,再改用方案二。