时间戳转换器

时间戳转换器:输入 Unix 时间戳(10 位秒级或 13 位毫秒级),一键换算成北京时间(UTC+8)与 UTC 时间;也可把日期时间反向转成时间戳,并给出 ISO 8601 与星期。页面顶部实时显示当前时间戳。

当前时间戳(每秒刷新)
17858172031785817203813毫秒

粘贴 10 位(秒)或 13 位(毫秒)时间戳,负数表示 1970 年之前。

北京时间(UTC+8)
2026-08-04 12:20:03

该时刻的北京时间为 2026-08-04 12:20:03周二), 对应 UTC 时间 2026-08-04 04:20:03

北京时间2026-08-04 12:20:03周二
UTC 时间2026-08-04 04:20:03
ISO 8601(北京)2026-08-04T12:20:03+08:00
ISO 8601(UTC)2026-08-04T04:20:03Z
秒级时间戳1785817203
毫秒级时间戳1785817203000

怎么用

  1. 选择转换方向在「转换方向」里选择「时间戳 → 北京时间」把时间戳还原成日期,或选「北京时间 → 时间戳」把日期时间转成时间戳。
  2. 输入时间戳或日期时间戳方向:粘贴 10 位(秒)或 13 位(毫秒)数字,并在「单位」里选对秒或毫秒。日期方向:填写北京时间的日期与时刻(可精确到秒)。
  3. 读取结果页面立即给出对应的北京时间(UTC+8)、UTC 时间、ISO 8601 格式与星期,或反向给出秒级 / 毫秒级时间戳,无需点击。
  4. 取用当前时间戳页面顶部实时显示「当前时间戳」并每秒刷新,点「复制」即可取用当前的秒级或毫秒级时间戳。

核心要点

时间戳转换器用于回答「这个 1700000000 是几点」「现在的时间戳是多少」「某个北京时间对应的 Unix 时间戳是多少」这类问题,是开发调试、对日志、排查接口时间的常用小工具。

  • 10 位是秒级时间戳,13 位是毫秒级,换算前先在「单位」里选对,否则会差 1000 倍。
  • 时间戳是 UTC 基准的绝对秒数,北京时间=UTC+8 小时,全年固定(中国不实行夏令时)。
  • 支持双向换算与负数时间戳(1970 年之前),并输出 ISO 8601 与星期。
  • 顶部「当前时间戳」每秒刷新,可一键复制秒级 / 毫秒级数值。

原理与公式

时间戳换算的本质是:Unix 时间戳是从 UTC 1970-01-01 00:00:00 起累计的绝对秒数(毫秒级则为毫秒数),与时区无关;换算成当地时间只需加上时区偏移。

北京时间 = UTC 时间 + 8 小时
毫秒时间戳 = 秒时间戳 × 1000

正向换算(时间戳 → 北京时间):先按单位把输入统一成毫秒,得到 UTC 时刻,再加 8 小时得到北京钟面时间。 反向换算(北京时间 → 时间戳):把北京钟面时间减去 8 小时还原为 UTC 时刻,再除以 1000 得到秒级时间戳。

计算示例

时间戳 1700000000(秒)换算北京时间:
该秒数对应 UTC 2023-11-14 22:13:20;加 8 小时得北京时间 2023-11-15 06:13:20(周三)。

反向:北京时间 2024-01-01 00:00:00 换算时间戳:
减 8 小时得 UTC 2023-12-31 16:00:00,对应秒级时间戳 1704038400、毫秒级 1704038400000

换算范围与极端年份

换算范围与 ECMAScript 的 Date 一致:以 1970 年为中心、上下各 8.64×10¹⁵ 毫秒(±1 亿天),约当公元前 271821 年至公元 275760 年,全程为安全整数毫秒运算(不做金额式小数舍入)。举例:时间戳 8639999971200000 毫秒对应北京时间 275760-09-13 00:00:00(6 位扩展年份); 因北京时间比 UTC 早 8 小时,再大 1 毫秒即越界并提示,不会输出无效日期。反向输入公元 1–99 年也会 如实保留,例如 0001-01-01 得到公元 1 年而非 1901 年。

常见问题

Unix 时间戳到底是什么?为什么从 1970 年开始算?
Unix 时间戳(也叫 epoch 时间、时间戳)是指从协调世界时(UTC)1970 年 1 月 1 日 00:00:00 起,到某一时刻所经过的秒数(或毫秒数),不含闰秒。选 1970 年是早期 Unix 系统约定的「零点」。因为它是一个与时区无关的绝对数字,程序里存储和传递时间通常用时间戳,显示给人看时再按需要换算成北京时间等当地时间。本工具就负责在这个数字与北京时间之间来回换算。
10 位和 13 位时间戳有什么区别?我拿到的该选秒还是毫秒?
位数取决于单位:秒级时间戳目前是 10 位(如 1700000000),毫秒级则多 3 位、为 13 位(如 1700000000000)。简单判断:10 位选「秒」,13 位选「毫秒」。前端 JavaScript 的 Date.now()、Java 的 System.currentTimeMillis() 返回毫秒;而 PHP time()、MySQL UNIX_TIMESTAMP()、Linux date +%s 多为秒。选错单位会让结果相差 1000 倍(约 3 万年),所以务必和数据来源对齐。
时间戳转北京时间为什么差 8 小时?是时区(UTC+8)问题吗?
时间戳本身是 UTC 基准的绝对时刻,换算成「当地时间」时要加上时区偏移。北京时间=UTC+8 小时,所以同一时间戳的北京时间会比 UTC 时间晚 8 小时。如果某个工具显示的是 UTC 或其它时区,就会和北京时间差 8 小时甚至更多。本工具同时给出北京时间和 UTC 时间两栏,方便你核对是不是时区差异。中国大陆全境统一使用北京时间(UTC+8)、且自 1991 年起不实行夏令时,因此换算时全年固定加 8 小时。
13 位毫秒时间戳换算成日期后,末尾的毫秒去哪了?
北京时间和 UTC 时间在本工具里精确到「秒」显示,所以毫秒级时间戳的秒级换算会向下取整(floor)到当秒。例如 1700000000500 毫秒(含 0.5 秒)显示的日期时间与 1700000000 秒相同,但结果里的「秒级时间戳」会显示为 1700000000。若你需要保留毫秒,请直接使用结果中的「毫秒级时间戳」字段。
Unix 时间戳可以换算 1970 年之前的日期吗?负数时间戳怎么用?
可以。1970 年 1 月 1 日 00:00:00 UTC 之前的时刻用负数时间戳表示,例如 −1 秒对应 UTC 1969-12-31 23:59:59(北京时间 1970-01-01 07:59:59)。本工具支持负数时间戳输入,也能把 1970 年前的北京日期反向转成负数时间戳。其中「时间戳 → 北京时间」方向覆盖 ECMAScript 日期全范围(约公元前 271821 年至公元 275760 年,会显示 6 位扩展年份);「北京时间 → 时间戳」方向的日期输入接受公元 0000–9999 的四位年份(含公元 1–99 年,如 0001-01-01)。
时间戳转换支持的年份范围有多大?极端年份和公元 1–99 年会算错吗?
换算严格遵循 ECMAScript 的 Date 时间范围:以 1970-01-01 为中心、上下各 8640000000000000 毫秒(±1 亿天),对应约公元前 271821 年至公元 275760 年。「时间戳 → 北京时间」方向支持到上限,超过一天上限的极端年份会以 6 位扩展年份显示(如 275760-09-13);由于北京时间比 UTC 早 8 小时,可换算的时间戳正向上限会比绝对上限提前 8 小时,超出即提示越界,不会给出无效结果。「北京时间 → 时间戳」方向接受公元 0000–9999 四位年份,包括公元 1–99 年(例如 0001-01-01 会正确保持公元 1 年,而不会被误当成 1901 年)。全部换算均为安全整数毫秒运算(值始终落在 Number.MAX_SAFE_INTEGER 内),不做金额式小数舍入,只在秒级显示时对毫秒向下取整。
ISO 8601 格式是什么?带的 +08:00 和 Z 是什么意思?
ISO 8601 是国际通用的日期时间书写标准,形如 2023-11-15T06:13:20+08:00。字母 T 分隔日期与时间;末尾的 +08:00 表示该时间处于 UTC+8(北京时间)时区;若末尾是字母 Z(Zulu),则表示这是 UTC 时间(等价于 +00:00)。接口传参、日志记录里常用这种带时区的写法,好处是不会产生歧义。本工具的结果同时给出北京(+08:00)和 UTC(Z)两种 ISO 8601 字符串,可直接复制使用。

来源与更新

计算口径说明(更新于 2026-08-04):

本工具仅做时间戳与北京时间的换算,结果供参考;涉及跨时区或夏令时请使用时区换算器核对。

最近更新:2026-08-04

本工具按北京时间固定 UTC+8、不含闰秒进行换算,结果供开发与日常参考。中国大陆自 1991 年起不实行夏令时,故全年固定加 8 小时;1986–1991 年间的历史夏令时不在换算范围内。涉及跨时区、含夏令时的换算请使用时区换算器。