首页日期时间 › 时间戳转换器

时间戳转换器

秒级或毫秒级 Unix 时间戳一键转为北京时间、本地时间和 UTC,也可把日期时间转成时间戳,实时显示当前时间戳。

什么是 Unix 时间戳

Unix 时间戳(Unix timestamp / Epoch time)是从 1970 年 1 月 1 日 0 时 0 分 0 秒(UTC)起经过的秒数,不含闰秒。它与时区无关:同一时刻在全球任何地方的时间戳都相同,只是换算成“本地时间”时才加上时区偏移。北京时间是东八区(UTC+8),所以北京时间 = UTC + 8 小时,例如时间戳 1700000000 对应 UTC 2023-11-14 22:13:20,北京时间 2023-11-15 06:13:20。

常见的时间戳有两种精度:秒级是 10 位数字(如 1700000000),毫秒级是 13 位(如 1700000000000)。JavaScript 的 Date.now() 返回毫秒,Python 的 time.time() 和 Linux 的 date +%s 返回秒,Java 的 System.currentTimeMillis() 返回毫秒。本工具按位数自动识别:12 位及以上按毫秒处理,其余按秒处理。把毫秒当秒会得到公元几万年的日期,把秒当毫秒则得到 1970 年 1 月,这是最常见的转换错误。

格式与注意事项

结果给出三种写法:YYYY-MM-DD HH:mm:ss 是最常见的显示格式;ISO 8601 形如 2023-11-15T06:13:20+08:00,末尾的 +08:00 表示时区,UTC 用 Z 表示;UTC 时间是数据库和日志中推荐的存储口径。本页北京时间按 UTC+8 固定计算,不依赖浏览器所在时区,只有“本地时间”一行才随您的设备时区变化。

2038 年问题:用 32 位有符号整数存储秒级时间戳,最大只能到 2038 年 1 月 19 日 03:14:07 UTC(2147483647),之后会溢出为负数。现代 64 位系统和 JavaScript 已不受此限,但老旧的嵌入式设备、数据库的 INT 字段仍可能出错,新项目建议用 64 位整数或 DATETIME 类型存储。

常见问题

时间戳是 10 位还是 13 位?

10 位是秒级(精确到秒),13 位是毫秒级。工具按位数自动识别,也可以手动把毫秒除以 1000 得到秒。

时间戳转换和时区有什么关系?

时间戳本身与时区无关。同一个时间戳,北京时间比 UTC 早 8 小时,比纽约(UTC−5/−4)早 13 或 12 小时。本页北京时间固定按 UTC+8 计算。

为什么我的时间戳转出来是 1970 年?

通常是把秒级时间戳当成了毫秒,或者传入了 0。检查位数:秒级应为 10 位。

时间戳 0 和负数代表什么?

0 就是 1970-01-01 00:00:00 UTC(北京时间 08:00);负数代表 1970 年之前的时刻,大多数系统支持但部分老接口不支持。