Epoch 时间转换器

将 Unix 时间戳转换为 UTC 日期,或将日期转换为 Epoch 秒数。

选择是将时间戳转换为日期,还是将日期转换为时间戳。
输入以秒为单位的 Unix 时间戳。

转换后的值

2024-03-09T16:00:00.000Z

UTC 值2024-03-09T16:00:00.000Z
Unix 毫秒1,710,000,000,000
星期星期六

如何使用此 Epoch 时间转换器

  1. 选择转换模式

    在“转换模式”字段中选择“Epoch 转日期”或“日期转 Epoch”。

  2. Epoch 转日期

    在“Epoch 时间戳(秒)”字段中输入 Unix 时间戳(以秒为单位)。

  3. 日期转 Epoch

    在“日历日期”中选择日期,然后根据需要设置“小时 (UTC)”、“分钟 (UTC)”和“秒 (UTC)”。

  4. 查看结果

    该计算器显示 UTC 值、Unix 毫秒数和星期。

计算方法

此 Epoch 时间转换器的工作原理

此 Epoch 时间转换器可在 Unix 时间戳与人类可读的 UTC 日期之间进行转换。Unix 时间(也称为 POSIX 时间或 Epoch 时间)是指自 Unix Epoch(定义为 1970 年 1 月 1 日 UTC 午夜,即 1970-01-01T00:00:00Z)以来经过的秒数。这种单整数表示法是数据库、API、日志文件、JWT 令牌以及几乎所有现代编程语言中存储和传输时间戳的事实标准。该转换器支持双向转换:输入数字时间戳可返回对应的 UTC 日期、星期和毫秒值;输入日历日期和时间则可返回以秒和毫秒为单位的 Epoch 值。

公式
Unix 时间 = 自 1970-01-01T00:00:00Z 以来经过的秒数
Unix 时间戳 参考点:1970 年 1 月 1 日 UTC 午夜(Unix 时间戳 0)
Unix 时间 (秒) 从 Unix 纪元到指定日期和时间的总秒数
Unix 时间 (毫秒) Unix 时间(秒)乘以 1,000 — 常用于 JavaScript Date、Java System.currentTimeMillis() 以及许多 API
UTC 日期 与给定时间戳相对应的公历日期和 24 小时制时间
星期 根据转换后的 UTC 日期得出的星期名称
示例

将 Unix 时间戳 1,700,000,000 转换为日期:从 1970-01-01 00:00:00 UTC 开始,增加 1,700,000,000 秒。这等于 19,675 天 17 小时 46 分钟 40 秒。生成的 UTC 日期为 2023-11-14 22:13:20 UTC,当天是星期二。对应的毫秒值为 1,700,000,000,000。反之,输入 2023 年 11 月 14 日 22:13:20 UTC,返回的 Epoch 值正好是 1,700,000,000。

时间戳 0 转换为 1970-01-01 00:00:00 UTC(星期四)。对应的毫秒值为 0。

时间戳 1,704,000,000 转换为 2023-12-31 12:00:00 UTC(星期日)。在“日期转纪元”模式下输入该日期和时间将返回 1,704,000,000。

假设条件
  • 所有计算均采用 UTC。本地时间转换需要在转换后应用相应的时区偏移量。
  • 不计算闰秒。与 POSIX 类似,此转换器将每一天视为恰好 86,400 秒,这与大多数编程语言和操作系统的行为一致。
  • 负时间戳表示 Unix 纪元(1970 年 1 月 1 日)之前的日期。例如,-86400 对应 1969 年 12 月 31 日。
  • 毫秒时间戳在输入前应除以 1,000;转换器接受秒作为输入,并在结果中显示对应的毫秒值。
备注
  • JavaScript 的 Date.now() 和 Java 的 System.currentTimeMillis() 返回的是毫秒而非秒 —— 在此处输入值之前请除以 1,000,或使用毫秒输出进行比较。
  • 2038 年问题会影响 32 位有符号整数时间戳,此类时间戳将在 2038 年 1 月 19 日 03:14:07 UTC 发生溢出。大多数现代系统已迁移至 64 位时间戳。
  • 在调试 API 响应或日志文件时,请留意那些偏差正好为 3,600 或 7,200 秒的时间戳 —— 这通常表示在处理流程的某个环节应用(或忽略)了时区偏移。
  • Epoch 时间始终是单调递增的(忽略闰秒调整),这使其成为排序事件、计算时长以及生成基于时间的唯一标识符的理想选择。
来源
  1. IEEE Std 1003.1 (POSIX) — 自 Epoch 以来的秒数定义
  2. Unix Epoch 起源 — Unix Heritage Society 和 Bell Labs 文档
  3. RFC 3339 — 互联网上的日期和时间:时间戳

什么是 Unix 时间戳?

Unix 时间戳是从 1970 年 1 月 1 日 UTC 午夜(即 Unix 纪元)起经过的秒数。这个单一整数是在数据库、API、日志文件和大多数编程语言中表示时间的业界标准。由于它与时区无关且单调递增,因此简化了排序、时长计算和基于时间的比较。JavaScript 的 Date.now() 和许多 API 返回的是毫秒(1,000 × 秒),因此在此处输入毫秒值之前请先除以 1,000。负时间戳表示 1970 年之前的日期;例如,-86400 正好是纪元前的一天。

开发者使用纪元时间的场景

开发者在数据库中存储事件时间、在 JSON API 中序列化日期、生成基于时间的缓存键以及调试日志条目时会使用 Unix 时间戳。数据库列通常将时间戳存储为整数,以便进行高效的索引和范围查询。API 响应经常返回纪元秒或毫秒,以避免时区歧义。在调试时,将日志或 JWT 声明中的原始时间戳转换为人类可读的日期,可以快速揭示该值是否正确或是否存在时区偏差。纪元时间还用于速率限制、会话过期以及在分布式系统中生成可排序的唯一标识符。

Epoch 时间转换器常见问题

什么是 Unix Epoch?

Unix Epoch 是衡量 Unix 时间的参考点:即 UTC 时间 1970 年 1 月 1 日午夜 (1970-01-01T00:00:00Z)。时间戳 0 对应于那一时刻。

为什么我的 JavaScript 时间戳位数更多?

JavaScript 的 Date.now() 返回的是自纪元以来的毫秒数,而非秒数。除以 1,000 即可转换为此工具使用的秒格式,或直接与毫秒输出进行比较。

我可以输入负的时间戳吗?

可以。负值表示纪元之前的日期。例如,-86400 对应 1969-12-31T00:00:00Z,即纪元前整整一天。

此工具处理闰秒吗?

不处理,这符合 POSIX 标准。POSIX 时间假设每天正好是 86,400 秒。自 1972 年以来插入的 27 个闰秒没有被单独表示,这意味着在闰秒边界处,UTC 和 Unix 时间可能相差一秒。

什么是 2038 年问题?

将 Unix 时间存储为 32 位有符号整数的系统将在 UTC 时间 2038 年 1 月 19 日 03:14:07 发生溢出,变为一个巨大的负数并产生 1901 年的日期。大多数现代平台现在使用 64 位时间戳,在超过 2900 亿年内不会溢出。

作者 Jan Křenek 创始人兼首席开发人员
审核 DigitSum 方法论审核 公式验证与质量保证
最后更新 2026年3月10日

此结果仅供参考,重要决策请咨询专业人士。

输入内容将保留在浏览器中,除非未来的功能另有明确说明。