Unix 时间戳转换
时间戳与日期时间双向互转,自动识别秒或毫秒,实时查看当前时间戳。
当前时间戳
实时更新时间戳 → 日期时间
日期时间 → 时间戳
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 这类本地化方法,
让格式随用户的语言与时区走,而不是手工拼接字符串。