13位时间戳转换时间:输入13得到的结果

把 13 作为 13位时间戳转换时间的输入时,结果并不是“13 秒”,而是 13 毫秒,对应的 UTC 时间是 1970-01-01 00:00:13,ISO 写作 1970-01-01T00:00:13.000Z。这个结论来自毫秒字段 13000 与 unix 字段 13 的对应关系,说明 13 位时间戳转换时间时,数值本身按毫秒解释,而秒级数值需要再换算。

在线工具时间戳转换

计算结果与含义

输入参数 13 后,转换结果包含四部分:unix 为 13,milliseconds 为 13000,iso 为 1970-01-01T00:00:13.000Z,utc 为 1970-01-01 00:00:13。这里的 milliseconds 是 13000,也就是 13 秒对应的毫秒数;而 unix 字段 13 表示的是秒数。两者放在一起看,13 作为 13 位时间戳转换时间的输入时,最终落到 UTC 时间轴上的位置是 1970 年 1 月 1 日 0 时 0 分 13 秒。ISO 字符串末尾的 .000Z 表示毫秒部分为 0,Z 表示 UTC 时区。

计算步骤:逐步代入参数 13

第一步,读取输入值 13。第二步,按毫秒解释该数值,得到 milliseconds = 13000。第三步,把 13000 毫秒换算为秒,得到 unix = 13。第四步,以 Unix 纪元 1970 年 1 月 1 日 0 时 0 分 0 秒为起点,向前推进 13 秒,得到 UTC 时间 1970-01-01 00:00:13。第五步,写成 ISO 格式就是 1970-01-01T00:00:13.000Z。如果需要在浏览器里核对同一组字段,可以使用 时间戳转换 工具输入 13 观察 unix、milliseconds、iso、utc 四个输出是否一致。

相邻参数对照说明

把 13 与相邻输入放在一起,更容易看清毫秒与秒的对应。输入 12 时,milliseconds 为 12000,utc 为 1970-01-01 00:00:12;输入 14 时,milliseconds 为 14000,utc 为 1970-01-01 00:00:14。可以看到,输入每增加 1,milliseconds 相应增加,UTC 秒数增加 1。输入 673 时,milliseconds 为 673000,utc 为 1970-01-01 00:11:13,已经跨过 11 分钟;输入 3613 时,milliseconds 为 3613000,utc 为 1970-01-01 01:00:13,跨过 1 小时。负数方向也有对照:输入 -647 时,utc 为 1969-12-31 23:49:13;输入 -3587 时,utc 为 1969-12-31 23:00:13。这些对照都说明,13 位时间戳转换时间时,数值单位是毫秒,而不是秒。

常见应用场景

13 位时间戳常见于 JavaScript 的 Date.now()、Java 的 System.currentTimeMillis()、PHP 的 microtime(true) 取整等场景。当接口返回 13 位数值时,直接把它当作秒数会得到错误日期;按毫秒解释后,13 会得到 1970-01-01 00:00:13。排查时可以把 13 与 12、14 做对照,确认边界是否按毫秒递增。需要补充语言侧概念时,可参考 php13位时间戳转换的教程:从13位数值到可读日期、13位时间戳转换北京时间python:从毫秒到本地时间 或 13位时间戳转换java:从准备到排查的教程。

反向换算与注意事项

反向换算时,如果已知 UTC 时间 1970-01-01 00:00:13,可以先得到秒数 13,再按毫秒单位展开得到 milliseconds 13000。注意不要混淆 unix 与 milliseconds 两个字段:unix 是 13,milliseconds 是 13000。另外,13 位时间戳转换时间得到的是 UTC 基准,显示本地时间时还需要加上时区偏移;ISO 字符串 1970-01-01T00:00:13.000Z 中的 Z 就表示 UTC。若输入为负数,例如 -647 或 -3587,结果会落在 1969-12-31,说明时间戳可以表示纪元之前的时间。

总结

13 作为 13位时间戳转换时间的输入时,按毫秒解释得到 milliseconds 13000、unix 13,对应 UTC 时间 1970-01-01 00:00:13,ISO 为 1970-01-01T00:00:13.000Z。对照 12、14 以及 673、3613 等输入,可以确认毫秒与秒的递增关系。

相关文章

常见问题

Q113位时间戳转换时间时,输入 13 为什么不是 13 秒?

因为 13 位时间戳按毫秒解释。输入 13 后,milliseconds 为 13000,unix 为 13,UTC 为 1970-01-01 00:00:13。也就是说,13 本身是毫秒数,13000 毫秒才等于 13 秒。

Q2输入 13 和输入 14 的结果差多少?

输入 13 的 milliseconds 是 13000,utc 是 1970-01-01 00:00:13;输入 14 的 milliseconds 是 14000,utc 是 1970-01-01 00:00:14。两者相差 1 秒。

Q3输入 13 得到的 ISO 字符串是什么?

ISO 字符串是 1970-01-01T00:00:13.000Z。其中 .000 表示毫秒部分为 0,Z 表示 UTC 时区。

Q413 位时间戳转换时间遇到负数怎么理解?

负数表示 Unix 纪元之前的时间。例如输入 -647 得到 1969-12-31 23:49:13,输入 -3587 得到 1969-12-31 23:00:13,都落在 1969 年 12 月 31 日。