Ubuntu 时间戳“不对”一般不是系统真的算错了,而是时区、显示方式或来源不同导致的。常见原因和排查方法如下:
时间戳本身是 UTC 秒数,但显示成时间时依赖时区。
查看当前时区:
timedatectl
如果时区不对(比如是 UTC 而你在中国):
sudo timedatectl set-timezone Asia/Shanghai
再确认:
date
系统时间错了,时间戳自然错。
查看时间:
date
手动同步时间(需要网络):
sudo apt install ntpdate
sudo ntpdate time.windows.com
或用 systemd:
sudo timedatectl set-ntp true
Ubuntu 可能把硬件时钟当 UTC 或本地时间。
查看:
timedatectl | grep "RTC"
如果是 Windows + Ubuntu 双系统,常见冲突:
sudo timedatectl set-local-rtc 1
⚠️ 注意:这会让 RTC 按本地时间存
date +%s → UTC 时间戳(秒)new Date()(JS) → 也是 UTC 时间戳对比:
date +%s
date
Docker 示例:
docker run -v /etc/localtime:/etc/localtime:ro ubuntu date
硬件时间会重置,重启后时间错乱。
timedatectl
date
date +%s
如果你能告诉我:
我可以直接帮你定位到具体原因。