接口返回一个 1700000000,日志里躺着 2023-11-15T06:13:20.000Z,产品问"这对应几点"——时间戳和日期时间来回对,是开发和运营都躲不开的事。手算要记起点(1970-01-01)再乘除,稍不注意还会把秒当成毫秒,结果差出一千多倍。
这篇用 NBTools 的时间戳转换工具讲清楚:秒和毫秒怎么区分、三个输入框怎么联动,以及最常踩的"差 8 小时"到底差在哪。工具在浏览器本地计算,数据不上传服务器。
先选对单位:10 位是秒,13 位是毫秒
工具顶部有一个"单位"下拉,可选秒或毫秒。这是第一步,选错后面全错。快速判断方法:
| 位数 | 单位 | 例子 | 对应时间 |
|---|---|---|---|
| 10 位 | 秒(s) | 1700000000 | 2023-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 时间戳转换:https://nbtools.cn/tools/timestamp
- 日期天数计算:算两个日期相差天数或日期加减
- Cron 解析:Cron 表达式解析与下次执行时间预测
- 年龄计算器:算精确年龄与出生天数