WebTool

Unix 时间戳完全指南:秒与毫秒、时区与 2038 年问题

WebTool 团队 · 发布于 2026-09-04 · 时间戳 / Unix / 后端

Unix 时间戳是从 1970-01-01 00:00:00 UTC(纪元时间)起经过的秒数,本身与时区无关——同一时刻全世界的时间戳完全相同。 需要互转可以用本站时间戳工具,支持秒/毫秒自动识别与时区切换。

秒与毫秒怎么区分

看位数:当前时代的秒级时间戳是 10 位(如 1700000000),毫秒级是 13 位(如 1700000000000)。一个快速判断:10 位及以下按秒,11 位以上按毫秒。

场景 常见单位
Unix/Linux 系统、大多数后端 API
JavaScript Date.now()、Java System.currentTimeMillis() 毫秒

混用是线上事故高发区:把毫秒当秒用,时间会偏到 5 万年后。

时区的本质

时间戳没有时区,时区只在"格式化展示"这一步起作用。1700000000 在北京显示为 2023-11-15 06:13:20,在 UTC 显示为 2023-11-14 22:13:20——是同一个瞬间。排查"时间差了 8 小时"问题,先确认是存储错了还是展示时区错了。

2038 年问题

32 位有符号整数存储的秒级时间戳,将在 2038-01-19 03:14:07 UTC 溢出回绕到 1901 年。现代 64 位系统已不受影响,但嵌入式设备、旧数据库 schema(如 MySQL 的 TIMESTAMP 类型只到 2038)仍需注意——新设计请用 BIGINTDATETIME

各语言获取当前时间戳

语言 毫秒
JavaScript Math.floor(Date.now()/1000) Date.now()
Python int(time.time()) int(time.time()*1000)
Go time.Now().Unix() time.Now().UnixMilli()
Java Instant.now().getEpochSecond() System.currentTimeMillis()
SQL(MySQL) UNIX_TIMESTAMP() UNIX_TIMESTAMP(NOW(3))*1000

最后更新:2026-09-04