13位时间戳转换:参数13的结果与含义
13位时间戳转换的结果是:输入 13 时,unix 为 13,milliseconds 为 13000,ISO 为 1970-01-01T00:00:13.000Z,UTC 为 1970-01-01 00:00:13。也就是说,13 这个 13 位时间戳代表的是 1970 年 1 月 1 日 0 时 0 分 13 秒。
在线工具时间戳转换
计算结果与含义
把 13 作为 13 位时间戳输入后,得到四个字段:unix 为 13,milliseconds 为 13000,ISO 为 1970-01-01T00:00:13.000Z,UTC 为 1970-01-01 00:00:13。其中 unix 表示秒级计数,milliseconds 表示毫秒级计数,ISO 与 UTC 是同一时刻的两种可读写法。
从含义上看,13 表示从 1970 年 1 月 1 日 0 时 0 分 0 秒起,经过了 13 秒。因此 ISO 里的日期仍是 1970-01-01,时间部分是 00:00:13,末尾的 .000Z 表示毫秒部分为 0,Z 表示零时区。UTC 写法去掉了 T 与 Z,用空格分隔日期与时间,内容仍是 1970-01-01 00:00:13。
计算步骤(逐步代入 13)
第一步,把输入值 13 当作秒级时间戳,得到 unix = 13。
第二步,把秒换算成毫秒:13 × 1000 = 13000,所以 milliseconds = 13000。证据中给出的 13 对应 milliseconds 正是 13000。
第三步,以 1970 年 1 月 1 日 0 时 0 分 0 秒为起点,向后推进 13 秒,得到 1970-01-01 00:00:13。
第四步,把该时刻写成 ISO 格式,即 1970-01-01T00:00:13.000Z;写成 UTC 格式,即 1970-01-01 00:00:13。
如果需要按同样方式核对其他输入,可以在 时间戳转换 中依次填入数值,观察 unix、milliseconds、ISO 与 UTC 四个字段是否同步变化。
相邻参数对照说明
把 13 与相邻的几个输入放在一起看,更容易理解秒级计数与毫秒级计数的对应关系。
输入 12 时,unix 为 12,milliseconds 为 12000,ISO 为 1970-01-01T00:00:12.000Z,UTC 为 1970-01-01 00:00:12。
输入 14 时,unix 为 14,milliseconds 为 14000,ISO 为 1970-01-01T00:00:14.000Z,UTC 为 1970-01-01 00:00:14。
对比可见,13 正好处在 12 与 14 之间,毫秒值也落在 12000 与 14000 之间,时间读数的秒部分同样落在 12 与 14 之间。再往远看,输入 673 时,unix 为 673,milliseconds 为 673000,ISO 为 1970-01-01T00:11:13.000Z,UTC 为 1970-01-01 00:11:13;输入 3613 时,unix 为 3613,milliseconds 为 3613000,ISO 为 1970-01-01T01:00:13.000Z,UTC 为 1970-01-01 01:00:13。这说明参数每增加 1,秒级读数增加 1 秒,毫秒级读数增加 1000,时间读数也相应向后推进 1 秒。
常见应用场景
13 位时间戳转换在实际中常用于核对“看似很大的数字”与“很小的时间增量”之间的关系。例如日志里出现 13 这类小整数时,可以借助 13 位时间戳转换工具确认它对应的是 1970 年 1 月 1 日 0 时 0 分 13 秒,而不是某个更晚的日期。
在调试计时逻辑时,13、12、14 这类相邻值可用来验证计数器的步进是否正确:如果程序输出 13,而界面显示 1970-01-01 00:00:13,说明秒级与毫秒级字段的换算关系符合预期。在测试负数边界时,-3587 对应 unix 为 -3587、milliseconds 为 -3587000、ISO 为 1969-12-31T23:00:13.000Z、UTC 为 1969-12-31 23:00:13,可以观察到时间落在 1970 年之前,这与 13 落在 1970 年之后形成对照。
反向换算与注意事项
反向换算时,如果拿到的是 1970-01-01T00:00:13.000Z,可以先把日期时间折算成从 1970 年 1 月 1 日 0 时 0 分 0 秒起的秒数,得到 13;再乘以 1000,得到 13000。这与输入 13 时输出的 unix = 13、milliseconds = 13000 一致。
需要注意三点。第一,13 位时间戳转换中的“13 位”容易让人误以为输入必须是 13 位数字,但本例的输入 13 只有两位,仍按秒级时间戳处理,输出毫秒值 13000。第二,负数输入会得到 1970 年之前的时刻,例如 -3587 对应 1969-12-31 23:00:13,-647 对应 1969-12-31 23:49:13,不能简单当作正数处理。第三,ISO 与 UTC 表示同一时刻,只是格式不同,比较时应统一到同一种格式,避免把 1970-01-01T00:00:13.000Z 与 1970-01-01 00:00:13 误认为两个不同时间。
总结
13 位时间戳转换输入 13 的结果是 unix 为 13、milliseconds 为 13000、ISO 为 1970-01-01T00:00:13.000Z、UTC 为 1970-01-01 00:00:13,表示从 1970 年 1 月 1 日 0 时 0 分 0 秒起经过 13 秒。
相关文章
- jq13位时间戳转换成日期:参数结果核对
说明参数13按Unix秒转换后的UTC日期,并区分数值13与13位毫秒时间戳。
- jq12位时间戳转换成日期:12 对应哪一刻?
参数 12 按 Unix 时间戳换算,对应 1970-01-01 00:00:12(UTC),毫秒数为 12000。本文说明结果含义、换算步骤与相邻参数对照。
- jdk8将时间戳转换成instant:8秒的转换结果
在JDK8中把时间戳8转换为Instant,结果是1970-01-01T00:00:08Z,对应UTC时间00:00:08,毫秒值8000。
- java时间戳转换日期格式14位:先分清秒与毫秒
从14位时间戳的位数困惑讲起,用实例说明秒与毫秒的差别,并给出Java格式化日期与排查错误的做法。
- java时间戳转换成时间6:从参数6看懂秒级换算
以参数6为例,讲清Java时间戳换算成时间的思路:秒与毫秒的区别、UTC与本地时区、边界值与常见报错排查。
常见问题
Q113 位时间戳转换输入 13 得到什么?
输入 13 时,unix 为 13,milliseconds 为 13000,ISO 为 1970-01-01T00:00:13.000Z,UTC 为 1970-01-01 00:00:13。
Q2为什么输入 13 的毫秒值是 13000?
因为秒级时间戳按 13 × 1000 换算为毫秒,得到 13000,所以 milliseconds 字段为 13000。
Q313 与相邻的 12、14 有什么区别?
12 对应 1970-01-01T00:00:12.000Z,14 对应 1970-01-01T00:00:14.000Z,13 对应 1970-01-01T00:00:13.000Z,三者依次相差 1 秒,毫秒值依次为 12000、13000、14000。
Q4负数输入时 13 位时间戳转换会得到什么?
例如 -3587 对应 1969-12-31T23:00:13.000Z,-647 对应 1969-12-31T23:49:13.000Z,时间落在 1970 年之前。