最稳妥方式是用 timedatectl 设置时区并启用 NTP 同步;需确认 Time zone 为 Asia/Shanghai (+0800)、RTC in local TZ 为 no、System clock synchronized 为 yes;执行 sudo timedatectl set-timezone Asia/Shanghai 和 sudo timedatectl set-ntp true;双系统务必保持硬件时钟为 UTC 模式。

直接用 timedatectl 设置时区并启用 NTP 同步,是最稳妥、兼容性最好的方式。手动改文件或只调 date 命令容易遗漏硬件时钟同步或服务配置,导致重启后失效或双系统时间错乱。
确认当前状态再动手
先运行 timedatectl,重点看三行:
-
Time zone:应显示
Asia/Shanghai (CST, +0800),不是 UTC 或空值 -
RTC in local TZ:应为
no(硬件时钟走 UTC),双系统用户尤其要注意 -
System clock synchronized:应为
yes,表示 NTP 已生效
设置正确时区(推荐 timedatectl)
执行以下命令设为东八区:
将后端 Java 接口文档转换为前端 TypeScript 类型定义(interface / type)。输入:飞书文档、Spring Boot 接口文档、Swagger/OpenAPI、手写 API 文档等。输出:包含请求参数与响应结果的 .md 文件,含完整 JSDoc 注释。触发关键词:Java 转 TS、接口转换、生成前端类型、接口文档转 TypeScript、DTO/VO/BO 转 interface、后端文档转前端类型、生成接口类型、类型定义生成。
sudo timedatectl set-timezone Asia/Shanghai- 验证:
timedatectl | grep "Time zone"输出必须含+0800 - 避免用
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime,部分云主机或容器中该文件会被覆盖 - 别用
tzselect或临时 export TZ,这些只影响当前 shell,cron、rsyslog 等服务不认
启用并强制一次网络时间同步
现代发行版默认用 chronyd,不是 ntpd:
- 开启自动同步:
sudo timedatectl set-ntp true - 检查服务状态:
systemctl status chronyd - 立即校准(尤其时间偏差大时):
sudo chronyc makestep - 若未配置 makestep,编辑
/etc/chrony.conf加入makestep 1 -1,再重启服务
同步硬件时钟并确认模式
系统时间准了,还得让 BIOS/UEFI 时钟也对上:
- 确保硬件时钟使用 UTC 模式(Linux 默认,也最安全):
sudo timedatectl set-local-rtc false - 把当前准确的系统时间写入硬件:
sudo hwclock --systohc - 验证:
date和hwclock --show输出时间应一致,且末尾都带+0800 - 双系统(如 Win+Linux)切勿设
set-local-rtc true,否则 Windows 时间会快 8 小时

















