在 Ubuntu 中设置时间戳(date/time)通常分为 查看时间、手动设置时间、自动同步时间(推荐) 三种情况。下面按常见场景说明。
date
date +%s
date +%s%3N
⚠️ 注意:Ubuntu 默认使用 UTC,不建议直接改时间,除非你明确知道后果。
date -s(临时,重启可能失效)sudo date -s "2026-01-21 15:30:00"
timedatectl(推荐方式)timedatectl
sudo timedatectl set-ntp false
sudo timedatectl set-time "2026-01-21 15:30:00"
如果你是“时间戳不对”,很可能是时区问题。
timedatectl
sudo timedatectl set-timezone Asia/Shanghai
大多数 Ubuntu 系统默认已启用。
sudo timedatectl set-ntp true
timedatectl status
看到:
System clock synchronized: yes
即表示成功。
sudo hwclock --show
sudo hwclock --systohc
date -d @1705819800
date -d "2026-01-21 15:30:00" +%s
| 问题 | 原因 | 解决 |
|---|---|---|
| 时间重启后不对 | 没同步硬件时钟 | hwclock --systohc |
| 时间总是被改回 | NTP 正在运行 | timedatectl set-ntp false |
| Docker 时间不对 | 容器共享宿主机时间 | 宿主机时间正确即可 |
| 程序时间戳差 8 小时 | 时区问题 | 设置 Asia/Shanghai |
如果你能说明 具体场景(比如:Docker、服务器、嵌入式、程序里的时间戳),我可以给你更精确的方案。