温馨提示×

时间戳在Ubuntu怎么设置

小樊
37
2026-08-23 21:06:36
栏目: 智能运维

在 Ubuntu 中设置时间戳(date/time)通常分为 查看时间、手动设置时间、自动同步时间(推荐) 三种情况。下面按常见场景说明。


一、查看当前时间戳

1️⃣ 查看当前系统时间

date

2️⃣ 查看 Unix 时间戳(秒级)

date +%s

3️⃣ 查看毫秒级时间戳

date +%s%3N

二、手动设置时间戳(不推荐,除非离线环境)

⚠️ 注意:Ubuntu 默认使用 UTC,不建议直接改时间,除非你明确知道后果。

方法一:使用 date -s(临时,重启可能失效)

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

方法二:使用 timedatectl(推荐方式)

查看当前时间状态

timedatectl

关闭自动时间同步(否则会被 NTP 覆盖)

sudo timedatectl set-ntp false

设置时间

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

三、设置时区(非常重要)

如果你是“时间戳不对”,很可能是时区问题。

查看当前时区

timedatectl

设置时区(例如中国)

sudo timedatectl set-timezone Asia/Shanghai

四、使用 NTP 自动同步时间(✅ 强烈推荐)

大多数 Ubuntu 系统默认已启用。

启用 NTP

sudo timedatectl set-ntp true

检查是否同步成功

timedatectl status

看到:

System clock synchronized: yes

即表示成功。


五、硬件时钟(RTC)相关(服务器常见)

查看硬件时间

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、服务器、嵌入式、程序里的时间戳),我可以给你更精确的方案。

0