时间戳转换器
时间戳转换器:输入 Unix 时间戳(10 位秒级或 13 位毫秒级),一键换算成北京时间(UTC+8)与 UTC 时间;也可把日期时间反向转成时间戳,并给出 ISO 8601 与星期。页面顶部实时显示当前时间戳。
粘贴 10 位(秒)或 13 位(毫秒)时间戳,负数表示 1970 年之前。
该时刻的北京时间为 2026-08-04 12:20:03(周二), 对应 UTC 时间 2026-08-04 04:20:03。
怎么用
- 选择转换方向:在「转换方向」里选择「时间戳 → 北京时间」把时间戳还原成日期,或选「北京时间 → 时间戳」把日期时间转成时间戳。
- 输入时间戳或日期:时间戳方向:粘贴 10 位(秒)或 13 位(毫秒)数字,并在「单位」里选对秒或毫秒。日期方向:填写北京时间的日期与时刻(可精确到秒)。
- 读取结果:页面立即给出对应的北京时间(UTC+8)、UTC 时间、ISO 8601 格式与星期,或反向给出秒级 / 毫秒级时间戳,无需点击。
- 取用当前时间戳:页面顶部实时显示「当前时间戳」并每秒刷新,点「复制」即可取用当前的秒级或毫秒级时间戳。
核心要点
时间戳转换器用于回答「这个 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 字符串,可直接复制使用。