问题描述

在安装 Windows 与 Ubuntu 双系统后,切换系统时经常出现时间错误(通常相差8小时),需手动同步才能恢复。


问题根源

  • Ubuntu默认:将硬件时钟(RTC)解读为 UTC时间

  • Windows默认:将硬件时钟解读为 本地时间

  • 两个系统对同一硬件时钟的解读标准不一致,导致时间显示混乱

  • ubuntu默认将硬件时钟视为UTC(协调世界时间时),而Windows默认将其视为本地时间。当在Ubuntu中校正时间后,硬件时钟被记录为UTC时间;但切换到Windows时,Windows会误将这个UTC时间当作当地的本地时间直接显示,因此就会出现时间错误(通常是相差8小时)。你手动同步,实际上是让Windows去联网获取正确的UTC时间,再根据你设置的时区换算成正确的本地时间,而每次开机,又变回,又要去手动同步。


解决方案

核心思路

修改 Ubuntu 配置,使其与 Windows 保持一致——将硬件时钟视为本地时间。

操作步骤

第一步:检查并设置时区(基础前提)

Ubuntu系统:

bash

# 查看当前时区
timedatectl

# 如不是 Asia/Shanghai,执行以下命令设置
sudo timedatectl set-timezone Asia/Shanghai

Windows系统:

  • 设置 → 时间和语言 → 日期和时间

  • 确认时区为 "(UTC+08:00) 北京,重庆,香港特别行政区,乌鲁木齐"

  • 建议开启 "自动设置时区" 和 "自动设置时间"

第二步:修改 Ubuntu 硬件时钟标准

在 Ubuntu 终端执行以下命令:

bash

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

命令说明:

  • set-local-rtc 1:将硬件时钟设置为使用本地时间

  • --adjust-system-clock:立即用系统时间更新硬件时钟,确保设置后时间正确

第三步:验证设置是否成功

bash

timedatectl

查看输出中是否包含:RTC in local TZ: yes

第四步:双系统时间同步(联网状态下)
  1. Ubuntu中:执行完上述命令后,时间已自动同步

  2. Windows中:进入设置 → 时间和语言 → 日期和时间 → 点击 "立即同步"(只需一次,用于校准硬件时钟基准)


注意事项

⚠️ 关于系统警告

执行命令后,系统可能提示 "不建议将RTC设置为本地时间"。
此警告可忽略! 这是系统对跨时区、夏令时等高级场景的提醒。对于固定在东八区(中国)的双系统用户,没有任何负面影响。

📝 命令拼写

正确命令为 timedatectl,注意不要拼写错误。

🔄 如果需要恢复默认设置(RTC使用UTC)

bash

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

最终效果

完成以上设置后:

  • ✅ 在 Windows 与 Ubuntu 之间任意切换重启

  • ✅ 系统时间始终保持正确

  • ✅ 无需任何手动干预,永久解决时间不同步问题


常用排查命令

Ubuntu查看时间状态:

bash

timedatectl

Windows查看时间:

  • CMD或PowerShell中输入:time

  • 或使用:w32tm /query /status

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐