Ubuntu双系统时间错误解决
双系统最常见的时间冲突问题,根源是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.com或sudo systemctl restart systemd-timesyncd。
四、常见问题
- 改完后时间仍乱:检查时区是否正确(中国时区:Asia/Shanghai),并确保两个系统都开启网络时间同步。
- 重启后失效:Ubuntu 20.04+ 用
timedatectl即可,旧版可编辑/etc/default/rcS把UTC=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. 时间错乱的全过程
- 你在 Ubuntu 里显示正确北京时间
- Ubuntu 会把 BIOS 时间改成 UTC 时间(比北京时间慢8小时)
- 你重启进 Windows
- Windows 一看 BIOS 时间:哇,怎么慢了8小时!
- 于是 Windows 时间就错了
反过来也一样:
Windows 把 BIOS 改成北京时间
Ubuntu 一读:这是 UTC?那我要 +8 小时
结果 Ubuntu 时间快8小时
5. 总结一句话
- BIOS 时间 = 硬件手表
- UTC = 全球标准时间
- Windows 把 BIOS 当本地时间
- Ubuntu 把 BIOS 当 UTC 时间
两个系统理解不一样,时间就永远打架。
Comments