首页 / 教程文章 / Unix 时间戳是什么?10 位和 13 位有什么区别

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

发布于 2026-08-18 14:00:00 · 1 阅读 · 标签:时间戳,Unix,日期,开发者

Unix 时间戳是自 1970-01-01 00:00:00 UTC 起的秒数。讲清 10 位秒级与 13 位毫秒级的区别、时区换算与 2038 问题。

一、一句话定义

Unix 时间戳 = 从 1970-01-01 00:00:00 UTC(纪元元年)开始累计的秒数。它是与地区无关的绝对时间:北京时间 2024-01-01 08:00:00 与 UTC 2024-01-01 00:00:00 是同一个时间戳 1704067200

二、10 位与 13 位:秒 vs 毫秒

常见的两种长度:

看到 13 位不要慌,除以 1000 再转即可。反过来,10 位时间戳乘 1000 才能被 JS 的 Date 正确解析。

三、时区只是显示问题

时间戳本身没有时区,时区只发生在「显示」环节:

四、2038 问题

32 位有符号整数最大值对应 2038-01-19 03:14:07 UTC,之后溢出变负数。现代 64 位系统的时间戳是 64 位整数,几千年内不会溢出;但老式嵌入式设备、老系统仍是隐患,升级时要注意。

在线体验

不用装任何环境,直接用本站时间戳转换工具在线操作,数据都在浏览器本地处理,方便又安全。

常见问题

时间戳能为负数吗?

可以。1970 年之前的时间用负数表示,例如 1969-12-31 23:59:59 UTC 是 -1。部分系统不支持负时间戳,处理历史数据时要留意。

为什么我的时间戳转换差了 8 小时?

时区没对齐。转换时先确认:时间戳按 UTC 解释,而你在按北京时间读结果(或相反)。统一约定后再转即可。

毫秒时间戳怎么转成秒?

去掉最后 3 位(整除 1000)即可。13 位毫秒变 10 位秒;反向则乘 1000 补 3 个 0。

更多文章