Dev tool

时间戳转换

Unix 时间戳和日期互相换算,秒级毫秒级自动识别,同时给出本地时间和 UTC。

现在
秒级 —
毫秒级 —
本地时间 —
UTC —
时间戳 → 日期
输入时间戳后自动换算

自动识别 10 位(秒)与 13 位(毫秒)

日期 → 时间戳
选择日期时间后自动换算

按你设备的本地时区解析

常用时间戳

Unix 时间戳是什么

它就是一个数字:从 1970 年 1 月 1 日 00:00:00 UTC 开始算起,到现在过了多少秒。 用单个数字记录时间的好处是——没有格式歧义、没有时区歧义、比较大小和做减法都很直接, 所以数据库、日志、API 里几乎都用它存时间。

秒还是毫秒

这是最容易踩的坑。同一个时刻,秒级是 1760947200,毫秒级是 1760947200000,差了 1000 倍。传错了,时间会跑到 1970 年或者几万年以后。 经验判断:10 位数是秒,13 位数是毫秒。

时区到底怎么算

时间戳本身不带时区,它只是一个时间点。你在北京看到 2026-10-18 16:52, 同一个时间戳在伦敦显示的是 08:52。所以排查「时间对不上」的问题时, 先确认两边显示的是哪个时区,再怀疑数据本身。

常见问题

为什么有些时间戳是 10 位,有些是 13 位?

10 位是秒级(Unix 时间戳的传统单位,JavaScript 之外的语言多用这个),13 位是毫秒级(Java、JavaScript 的 Date.now() 默认返回毫秒)。这个工具会自动按位数判断,也可以手动切换。

时间戳会受时区影响吗?

不会。Unix 时间戳表示的是「从 1970-01-01 00:00:00 UTC 起经过的秒数」,本身不带时区。受影响的是把它显示成日期的时候——同一个时间戳在 UTC+8 是 16:00,在 UTC 是 08:00。所以下面同时给了本地时间和 UTC 两种显示。

2038 年问题是什么?

如果时间戳用 32 位有符号整数存储,最大值是 2147483647,对应 2038-01-19 03:14:07 UTC。超过这个时刻,32 位系统会溢出成负数,时间跳回 1901 年。现代系统大多已经改用 64 位,但老设备和嵌入式程序里仍有这个隐患。

这个换算准吗?

换算完全由浏览器内置的日期函数完成,不涉及任何网络请求或第三方算法。只要你的设备系统时间是准的,「现在」那个数字就是准的。