Ubuntu双系统时间错误解决

Ubuntu双系统时间错误解决

不再孤独ing MVP++

双系统最常见的时间冲突问题,根源是Windows与Ubuntu对BIOS硬件时间的解读规则不同

一、为什么时间会错(核心原因)

  • Windows:默认把BIOS时间当作本地时间(Local Time),直接读取显示。
  • Ubuntu:默认把BIOS时间当作UTC世界标准时间,显示时会按时区(中国UTC+8)自动加8小时。
    结果:
  • 从Ubuntu切到Windows:Windows会把UTC时间当成本地时间,时间慢8小时
  • 从Windows切到Ubuntu:Ubuntu会把本地时间当成UTC,时间快8小时

二、两种彻底解决方法(任选其一)

方法一:让Ubuntu用本地时间(推荐,最稳妥)

在Ubuntu终端执行以下命令,让Ubuntu把BIOS时间当作本地时间:

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

执行后重启电脑即可。
验证:

1
timedatectl

看到 RTC in local TZ: yes 即成功。

方法二:让Windows用UTC时间(更标准)

以管理员身份打开命令提示符(CMD),执行:

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

执行后重启电脑。

三、临时急救(立即修正)

如果不想改设置,只想快速把时间调对:

  • Windows:设置 → 时间和语言 → 立即同步时间。
  • Ubuntu:终端执行 sudo ntpdate time.windows.comsudo systemctl restart systemd-timesyncd

四、常见问题

  • 改完后时间仍乱:检查时区是否正确(中国时区:Asia/Shanghai),并确保两个系统都开启网络时间同步。
  • 重启后失效:Ubuntu 20.04+ 用 timedatectl 即可,旧版可编辑 /etc/default/rcSUTC=yes 改为 UTC=no

1. 什么是 BIOS 时间?

  • 你电脑关机、断电后,主板上有个小电池在跑时间。
  • 这个时间存在CMOS/BIOS里,是硬件时间
  • 不管你装 Windows、Ubuntu、还是什么系统,大家读的都是这同一个时间
    你可以把它理解成:
    电脑主板自带的一块电子表。

2. 什么是 UTC 时间?

UTC = 世界统一时间,全球都用它来对表。
我们在中国(东八区):
本地时间 = UTC + 8 小时
比如:

  • UTC 时间:00:00
  • 我们这里:08:00(早上8点)

3. 为什么 Windows 和 Ubuntu 会打架?

关键就在:它们对 BIOS 时间的理解不一样

Windows 认为:

BIOS 时间 = 我现在的本地时间
你在中国,它就直接当北京时间用。

Ubuntu 认为:

BIOS 时间 = UTC 标准时间
它会自己 +8 小时变成北京时间给你看。


4. 时间错乱的全过程

  1. 你在 Ubuntu 里显示正确北京时间
  2. Ubuntu 会把 BIOS 时间改成 UTC 时间(比北京时间慢8小时)
  3. 你重启进 Windows
  4. Windows 一看 BIOS 时间:哇,怎么慢了8小时!
  5. 于是 Windows 时间就错了
    反过来也一样:
    Windows 把 BIOS 改成北京时间
    Ubuntu 一读:这是 UTC?那我要 +8 小时
    结果 Ubuntu 时间快8小时

5. 总结一句话

  • BIOS 时间 = 硬件手表
  • UTC = 全球标准时间
  • Windows 把 BIOS 当本地时间
  • Ubuntu 把 BIOS 当 UTC 时间
    两个系统理解不一样,时间就永远打架
Comments