Windows 和 Linux 双系统时间总是差 8 小时(或你的时区差),通常是因为两个系统对硬件时间(BIOS 时间)的理解不同:
于是就出现了互相覆盖的情况。推荐让 Windows 把硬件时间当作 UTC,这样不影响 Linux 正常工作,且处理夏令时更安全。
方案一:让 Windows 使用 UTC(推荐)
在 Windows 中以管理员身份打开命令提示符(cmd),执行:
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 /f
重启后,Windows 就会把 BIOS 时间当成 UTC。如果之前已经差了 8 小时,可顺手同步下时间,或在联网后让系统自动同步。
💡 部分 Windows 版本可能还需要在服务中禁用“Windows 时间”的自动设置,或手动触发一次时间同步:控制面板 → 日期和时间 → Internet 时间 → 更改设置 → 立即更新。
方案二:让 Linux 使用本地时间(不推荐,但简单)
如果你不方便改动 Windows,也可以让 Linux 把硬件时间当成本地时间。在终端执行:
timedatectl set-local-rtc 1 --adjust-system-clock
验证是否生效:
看到 RTC in local TZ: yes 就表示成功了。⚠️ 这种方式在跨时区或夏令时切换时可能出现时间偏移,按需使用。
事后确认
两边都改好后,可以:
- 1. 进入 BIOS / UEFI 查看时间是否正确。
- 2. 在两个系统间来回重启,检查时间是否保持一致。