Unix时间戳转换器

即时在 Unix 时间戳和人类可读的日期时间之间相互转换。适合编程、调试和数据分析的开发者 Epoch 时间转换工具,免费在线使用。

当前 Unix Timestamp: ...
转换方向

请输入以秒为单位的 Unix Timestamp

使用方法

  1. 输入时间戳

    输入Unix时间戳(秒或毫秒),转换为可读日期。

  2. 或输入日期

    输入日期和时间,获取对应的Unix时间戳。

  3. 查看转换

    点击计算按钮,查看本地时间和UTC时间的转换结果。

什么是 Unix 时间戳?

Unix 时间戳(Unix time、POSIX time、Epoch time)用一个整数表示自1970 年 1 月 1 日 00:00:00 UTC(Unix 纪元)以来经过的秒数(seconds)。它不受时区、夏令时和日历表示差异的影响,在全球任何地方都用同一个数字指向同一时刻,因此在数据库存储、日志记录、API 通信和时间比较中被作为事实上的标准。

为什么用数字表示时间?

  • 比较简单 — 只需比较整数大小即可判断两个时刻的先后。
  • 运算容易 — 相加相减即可直接得到经过时间(秒)。
  • 没有歧义 — 它是以 UTC 为基准的绝对时刻,不存在'是 KST 还是 UTC'之类的困惑。

常见的有 10 位(秒)和 13 位(毫秒);JavaScript、Java 等默认使用毫秒,而 Unix 系统调用默认使用秒。

计算公式

时间戳与日期通过 1000(毫秒换算)为媒介进行双向转换。

  • 时间戳 → 日期: date = new Date(timestamp x 1000)
  • 日期 → 时间戳: timestamp = floor(UTC 毫秒 / 1000)

示例: 将 1711324800 秒转换得到 1711324800 x 1000 = 1,711,324,800,000 毫秒 → 2024-03-25 00:00:00 UTC。反过来,将 1970-01-01 01:00 转换时,1 小时 = 3600 秒,所以时间戳是 3600。这里 timestamp 表示纪元以来经过的秒数,x1000 是毫秒换算系数,floor 表示舍去小数部分。

常见问题

什么是 Unix 时间戳?
Unix 时间戳(Unix time、POSIX time)是自 1970 年 1 月 1 日 00:00:00 UTC 以来经过的秒数(seconds)。它是计算机系统表示日期和时间最基础的方式,无论时区如何,都用一个数字表示同一时刻。例如时间戳 0 就是 1970 年 1 月 1 日午夜(UTC)。
什么是纪元(Epoch)?
纪元是时间测量的基准点。在 Unix/POSIX 系统中,纪元是 1970 年 1 月 1 日 00:00:00 UTC,也称为'Unix 纪元'。所有 Unix 时间戳都表示自该时刻起经过的秒数,负的时间戳表示 1970 年之前的时间。
什么是 Y2K38(2038 年)问题?
Y2K38 是用 32 位有符号整数存储时间戳时发生的溢出问题。32 位最大值 2,147,483,647 对应 2038 年 1 月 19 日 03:14:07 UTC,在此之后数值翻转为负数,时间会被错误地显示为 1901 年。大多数现代系统通过使用 64 位整数解决了该问题。
秒级和毫秒级时间戳有什么不同?
秒级通常为 10 位(例如 1711324800),毫秒级为 13 位(例如 1711324800000)。两者关系为'毫秒 = 秒 x 1000'。JavaScript 的 Date.now() 和 Java 返回毫秒,而 Unix 的 date 命令和 PHP 的 time() 默认返回秒。本转换器会同时以秒和毫秒显示结果。
为什么 UTC 时间和本地时间显示不同?
时间戳本身是 UTC 绝对时刻,但人们更习惯看本地时间。因此同一个时间戳会以两种方式显示:以 UTC 为基准和以浏览器本地时区为基准。例如韩国(KST)为 UTC+9,所以同一个时间戳的本地时间会比 UTC 提前 9 小时显示。
如何查看当前的 Unix 时间戳?
打开本页面后,会实时显示当前时刻的 Unix 时间戳,点击'使用当前时间戳'按钮即可直接填入输入框。在命令行中也可以用 'date +%s'(Unix/Mac)获取当前的秒级时间戳。
ISO 8601 格式是什么,为什么一起显示?
ISO 8601 是用国际标准书写日期和时间的格式,例如 '2024-03-25T00:00:00.000Z',末尾的 Z 表示 UTC。时间戳对人来说难以阅读,而 UTC 字符串在系统间的兼容性很好,因此在 API、日志和 JSON 数据交换中常常一起使用,所以我们在转换结果中一并提供。
时间戳可以是 0 或负数吗?
可以。时间戳 0 是纪元基准点,即 1970 年 1 月 1 日 00:00:00 UTC,比它更早的时刻(例如 1969 年)用负数表示。供参考,Y2K(2000-01-01)是 946684800,Y2K38 上限是 2147483647,可见特定时刻具有固定的整数值。
2026年日历数据

相关计算器