时间戳转换怎么算:秒/毫秒、本地时间与 ISO 8601 一次对清

改任意一栏三处同步,顺便看清时区差在哪

接口返回一个 1700000000,日志里躺着 2023-11-15T06:13:20.000Z,产品问"这对应几点"——时间戳和日期时间来回对,是开发和运营都躲不开的事。手算要记起点(1970-01-01)再乘除,稍不注意还会把秒当成毫秒,结果差出一千多倍。

这篇用 NBTools 的时间戳转换工具讲清楚:秒和毫秒怎么区分、三个输入框怎么联动,以及最常踩的"差 8 小时"到底差在哪。工具在浏览器本地计算,数据不上传服务器

先选对单位:10 位是秒,13 位是毫秒

工具顶部有一个"单位"下拉,可选毫秒。这是第一步,选错后面全错。快速判断方法:

位数单位例子对应时间
10 位秒(s)17000000002023-11-15 06:13:20 UTC
13 位毫秒(ms)1700000000000同一时刻,精度到毫秒

经验法则:JavaScript 的 Date.now() 和后端 Java 常用毫秒(13 位),而 Unix/Linux、Go、Python 的 time.time() 多为秒(10 位)。把毫秒当秒转,会得到 1970 年附近的时间;把秒当毫秒转,会跑到公元 5 万年——一眼就能看出不对。

三个输入框,改一个其余跟着变

页面上有三栏,在任意一栏输入,另外两栏会立即同步,不需要点按钮:

  • Unix 时间戳:纯数字,按上面选的单位解释。
  • 本地时间:格式为 YYYY/MM/DD HH:mm:ss,用的是你当前设备的时区
  • ISO 8601:形如 2023-11-15T06:13:20.000Z,末尾的 Z 表示 UTC 零时区。

比如填入以秒为单位的时间戳 1700000000:本地时间显示 2023/11/15 14:13:20(东八区),ISO 8601 显示 2023-11-15T06:13:20.000Z——同一时刻的两种写法。

"差 8 小时"到底差在哪

这是时间戳转换最高频的困惑。原因不是算错了,而是两栏表示的时区不同

  • ISO 8601 栏Z 后缀,代表 UTC 零时区,是全球统一的"绝对时刻"。
  • 本地时间栏用的是浏览器所在时区。中国大陆为东八区(UTC+8),所以比 UTC 早 8 小时。

所以同一个时间戳,本地时间显示 14:13、ISO 显示 06:13,差的正是这 8 小时。跨时区协作时,建议统一用带 Z 的 ISO 8601 或时间戳本身来沟通,避免各自按本地时区理解产生歧义。

实时当前时间戳

页面底部会显示当前时间戳并每秒自动刷新,单位跟随你选择的秒/毫秒。需要"此刻的时间戳"去调接口、造测试数据、或核对日志时间时,直接读这一行即可,不用再去别处生成。

如果你要做的是日期之间的天数加减,或者算年龄、解析定时任务的执行时间,可以配合日期天数计算年龄计算器Cron 解析工具使用。

常见问题

怎么判断手上的时间戳是秒还是毫秒

看位数:10 位通常是秒,13 位通常是毫秒。也可以在工具里切换单位试一下——若结果落在 1970 年附近或公元 5 万年,说明单位选反了。

为什么本地时间和 ISO 8601 差 8 小时

ISO 8601 栏带 Z,表示 UTC 零时区;本地时间栏用设备时区(东八区 UTC+8),所以快 8 小时。两者是同一时刻的不同表示。

转换结果会随我的时区变化吗

"本地时间"这一栏会。它按你设备的时区显示;时间戳与 ISO 8601(UTC)与时区无关,到哪里都一样。

能批量转换一整列时间戳吗

本工具面向单条互转,一次处理一个值。批量场景建议先用脚本或在表格里分列处理,再用本工具抽查核对。

数据会上传吗

不会。转换在浏览器本地完成,时间戳与日期不上传服务器。

相关工具

作者:NBTools · 更新于 2026年9月17日 · 阅读约 4 分钟