Unix 时间戳转换

时间戳与日期时间双向互转,自动识别秒或毫秒,实时查看当前时间戳。

当前时间戳

实时更新
秒级
-
毫秒级
-
本地时间
-
UTC 时间
-

时间戳 → 日期时间

输入 10 位(秒)或 13 位(毫秒)时间戳,自动识别。
结果将显示在这里。

日期时间 → 时间戳

支持 2025-01-01 12:00:00 等常见写法,按本地时区解析。
结果将显示在这里。

常用时间戳参考

点击任意一行可复制其时间戳。

Unix 时间戳是怎么定义的,为什么它不带时区

Unix 时间戳(也叫纪元时间、POSIX 时间)定义为从 1970 年 1 月 1 日 00:00:00 UTC 起经过的秒数,且不计算闰秒。它是一个纯粹的数字:能直接比较大小、能直接排序、 也不携带任何时区信息——这正是数据库、日志与接口用它表示「某一瞬间」的原因。

唯一的歧义在单位:秒是 10 位数字,毫秒是 13 位。 两者混用会得到 1970 年或五万年后的荒谬结果,所以本工具会明确告诉你它识别为哪一种, 而不是默默猜一个。JavaScript 的 Date.now()、多数后端框架的时间戳字段, 都需要先确认单位再使用。

时间戳本身没有时区,显示时才有:同一个瞬间在北京、伦敦、纽约是三个不同的墙上时间。 这也是排查时间问题的顺序——先比对 UTC 是否一致;如果 UTC 一致而显示不同, 数据没问题,只是展示时用了不同时区。写接口或存库时,推荐统一使用 UTC, 并在需要人读时使用带 Z 的 ISO 8601 字符串(如 2025-01-01T12:00:00Z), 那个 Z 就是防止「被当成另一个时区」的关键。

还有两个常被问到的细节。其一是闰秒:Unix 时间不计数闰秒, 这个偏差由时钟系统处理,不需要业务代码关心。其二是著名的 2038 年问题: 它只影响把时间戳存成 32 位有符号整数的旧系统, 64 位存储与 JavaScript 的数值都不受影响,不必为它提前改架构。

常见用途包括:日志与事件排序、缓存过期时间、接口签名的有效期、 以及跨时区的定时任务。需要按天统计时,记得先把时间戳换算到业务所在时区的日期, 否则「今天」的边界会差 8 小时。 本工具的两个方向和参考时间戳都在浏览器本地计算,不上传任何数据。

实际使用中还有两个高频场景。其一是算时长:两个时间戳相减直接得到秒数差, 比解析日期字符串再相减可靠得多,适合统计耗时、会话时长与倒计时。 其二是按天聚合:要把时间戳归到某一天,必须先换算到业务所在时区的零点, 否则每天的边界会偏移数小时,报表里的「今天」就对不上。 前端展示时建议用 toLocaleString 这类本地化方法, 让格式随用户的语言与时区走,而不是手工拼接字符串。