EN
首页 分类 Unix 时间戳

Unix 时间戳

时间与秒级/毫秒级时间戳互转,支持单位切换、一键获取当前时间戳、常用时区与格式化日期对照

常见问题

10 位和 13 位时间戳有什么区别?

10 位是秒级,13 位是毫秒级(JavaScript、Java 常用毫秒)。13 位去掉后三位就是对应的 10 位秒级时间戳。

时间戳是 UTC 还是本地时间?

Unix 时间戳本身以 UTC 为基准(从 1970-01-01 00:00:00 UTC 起算的秒数),与时区无关,所以同一串数字在哪个国家都一样。换算成日期才涉及时区,这里会同时给出本地时间与 UTC / 北京 / 东京 / 伦敦 / 纽约 五个时区的对照。

2038 年问题是什么?

用 32 位有符号整数存秒级时间戳时,最大值只能到 2147483647,对应 2038-01-19 03:14:07 UTC,之后就会溢出。改用 64 位存储或毫秒级可避免。

怎么获取当前时间戳?

页面上方会实时显示当前秒级与毫秒级时间戳,点一下即可复制。

关于这个工具

三件事放在同一页:实时显示当前时间戳、把时间戳换算成日期、把日期换算成时间戳。全部在浏览器内完成,不请求服务器,所以断网也能用。

秒和毫秒的判定规则:数值小于 1e11 按秒解释(也就是 12 位及以上算毫秒)。这样 10 位的 1780000000(2026 年)和 13 位的 1780000000000 都能直接粘进来;11 位数是真正的歧义区间,会被当成秒(约等于公元 2286 年),这种情况请自己补三位或去掉三位。顺带说,早期版本用 1e12 做阈值,会把 2000-01-01 的毫秒值 946684800000 解析成公元 31969 年。

时间戳本身没有时区,它就是「距 1970-01-01 00:00:00 UTC 的秒数」。所以输出同时给出本地时间与 UTC / 北京 / 东京 / 伦敦 / 纽约 五地的对照 —— 伦敦和纽约会随夏令时自动偏移,这就是它们标注 UTC+0/+1、UTC-5/-4 的原因。北京时间不实行夏令时,恒定 UTC+8。

2038 问题:把秒级时间戳塞进 32 位有符号整数,上限是 2147483647,对应 2038-01-19 03:14:07 UTC,之后会溢出成负数。反向换算时如果秒级值超过这个上限,页面会直接给出提示。这里的换算走的是浮点秒(Math.floor),所以 2100 年也能算对 —— 早期的 32 位截断写法会让 2038 年之后的日期显示成负数。

反向换算取的是浏览器所在时区的时间,没有时区选择器:想算某个 UTC 时刻对应的秒数,需要先把时差折进去(比如把 UTC 12:00 按本地 UTC+8 填成 20:00),否则会差几个小时。另外当前时间戳每秒刷新一次,复制按钮复制的是 13 位毫秒值,需要 10 位秒级时去掉后三位即可。