温馨提示×

Ubuntu如何修改系统时间戳

小樊
39
2026-08-23 21:14:38
栏目: 智能运维

在 Ubuntu 中修改系统时间戳(日期和时间)有多种方式,主要取决于你是临时修改还是永久修改,以及是否使用 NTP 时间同步。下面按常见场景说明。


一、临时修改系统时间(重启后失效)

1️⃣ 使用 date 命令(不推荐,仅临时)

sudo date -s "2026-01-21 15:30:00"

验证:

date

⚠️ 注意:

  • 重启后时间可能被 BIOS / NTP 恢复
  • 不会自动同步硬件时间

二、推荐方式:使用 timedatectl(Ubuntu 16.04+)

这是 最标准、最推荐 的方式。

1️⃣ 查看当前时间状态

timedatectl

示例输出:

Local time: Wed 2026-01-21 15:30:00 CST
Universal time: Wed 2026-01-21 07:30:00 UTC
RTC time: Wed 2026-01-21 07:30:00
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes

2️⃣ 手动设置时间(关闭 NTP 后)

① 关闭自动时间同步

sudo timedatectl set-ntp false

② 设置时间

sudo timedatectl set-time "2026-01-21 15:30:00"

3️⃣ 设置时区(常见需求)

sudo timedatectl set-timezone Asia/Shanghai

查看所有时区:

timedatectl list-timezones

三、同步硬件时间(BIOS 时间)

Ubuntu 默认系统时间 ≠ 硬件时间,建议同步。

将系统时间写入硬件时间

sudo hwclock --systohc

查看硬件时间

hwclock

四、启用 NTP 自动同步(生产环境推荐)

启用 NTP

sudo timedatectl set-ntp true

系统会自动使用:

  • systemd-timesyncd
  • chrony / ntp(如已安装)

验证:

timedatectl status

应看到:

System clock synchronized: yes

五、Docker / 容器 / 云服务器注意事项

❗ 容器中通常 不能修改系统时间

  • Docker 容器共享宿主机内核
  • 需要:
    docker run --privileged
    
  • 不推荐

✅ 正确做法:修改 宿主机时间


六、常见问题

Q1:修改时间后马上被恢复?

✅ 原因:

  • NTP 正在运行
  • 解决:
    sudo timedatectl set-ntp false
    

Q2:修改时间后日志时间异常?

✅ 建议:

  • 重启 rsyslog / journald
  • 或直接重启系统

七、总结(推荐流程)

# 查看当前时间
timedatectl

# 关闭 NTP
sudo timedatectl set-ntp false

# 设置时间
sudo timedatectl set-time "2026-01-21 15:30:00"

# 设置时区
sudo timedatectl set-timezone Asia/Shanghai

# 写入硬件时间
sudo hwclock --systohc

如果你能说明:

  • ✅ Ubuntu 版本
  • ✅ 物理机 / 虚拟机 / Docker / 云服务器
  • ✅ 是否需要永久修改

我可以给你 最合适、最安全 的方案。

0