utilduck
Home · 开发者 · Unix 时间戳转换器

Unix 时间戳转换器

输入 Unix 时间戳(秒)或日期,即时转换。

UTC-
本地时间-
时间戳(秒)0

什么是 Unix 时间戳?

Unix 时间戳计算自 1970 年 1 月 1 日 00:00:00 UTC(Unix 纪元)起经过的秒数。它是一个与时区无关的整数,唯一标识某个时刻,是数据库和 API 中存储时间戳的通用标准。

将时间戳转换为可读日期,需除以 86400 得到天数,再加到 1970-01-01。实际上,浏览器和编程语言的内置函数会处理这些。负时间戳表示 1970 年之前的日期。

Unix 时间戳怎么换算成日期?

把 Unix 时间戳换算成日期时,把它当作自 1970 年 1 月 1 日 00:00:00 UTC 以来经过的秒数,再加到这个起点上;反过来,则用某个 UTC 日期减去这个起点,数出经过的秒数。例:时间戳 1000000000 对应 2001-09-09T01:46:40Z。

时间戳与日期互换步骤

  1. 把 Unix 时间戳当作自纪元(1970-01-01T00:00:00 UTC)以来经过的整数秒。
  2. 如果你的编程环境要求毫秒而不是秒(比如 JavaScript 的 Date 对象使用毫秒),把秒数乘以 1000。
  3. 把这段时长加到纪元时刻上,得到对应的 UTC 日期和时间。
  4. 要把日期换算回时间戳,先把日期表示为 UTC,再减去纪元,数出两者之间经过的整数秒。
  5. 1970 年之前的时间戳用负数表示,即从纪元往前数的秒数。

Unix 时间戳公式

时间戳(秒) = (UTC 日期) - (1970-01-01T00:00:00 UTC),以秒为单位
  • 纪元 = 1970-01-01T00:00:00 UTC,固定的参照起点(时间戳 0)
  • 86400 = 一天的秒数,用于在天数和秒数之间换算

时间戳换算日期示例(UTC)

时间戳UTC 日期和时间
01970-01-01T00:00:00Z
10000000002001-09-09T01:46:40Z
17210880002024-07-16T00:00:00Z
17526240002025-07-16T00:00:00Z
17841600002026-07-16T00:00:00Z

常见问题

为什么 Unix 时间戳用 UTC 而不是本地时间?

使用统一的 UTC 参照点可以避免时区和夏令时切换带来的歧义——同一个时间戳在世界任何地方都指向完全相同的那一刻,每个应用只在显示时才把它换算成查看者的本地时间。

负数时间戳是什么意思?

负数时间戳表示纪元(1970-01-01T00:00:00 UTC)之前的某个时刻。例如 -86400 表示纪元前 86,400 秒(即一天),也就是 1969-12-31T00:00:00 UTC。

为什么有些系统用毫秒而不是秒?

Unix 时间戳标准是以秒为单位定义的,但一些语言和接口(尤其是 JavaScript 的 Date.now())为了更高精度使用毫秒。把以秒为单位的时间戳乘以 1000 得到毫秒,把毫秒时间戳除以 1000 得到秒。

2038 年以后 Unix 时间戳会发生什么?

把时间戳存成有符号 32 位整数的系统,会在 2038 年 1 月 19 日 03:14:07 UTC 发生溢出,这就是所谓的"2038 年问题"。目前大多数现代系统已改用 64 位整数存储时间戳,可用范围因此延长数十亿年,避免了这个溢出问题。

本工具使用浏览器内置的 Date 对象在 Unix 时间戳和日历日期之间互相换算;本地时间的显示结果取决于设备的时钟和时区设置,但底层的时间戳和 UTC 数值始终是明确无歧义的。

Sources: POSIX / IEEE Std 1003.1 - Base Definitions (Seconds Since the Epoch)

隐私与安全

  • 在浏览器中计算 — 您输入的内容仅在本机设备上计算,不会发送到 utilduck 服务器。
  • 加密连接 — 所有页面均通过 HTTPS 提供,传输过程中无法被读取。
  • 不提供给第三方 — 您输入的内容不会传递给分析或广告服务。
  • 不保存 — 计算结果不会保存到任何服务器,也无需注册账号。

最后更新: 2026-08-24

时间戳转换必须同时注明单位与时区

Unix时间戳描述的是一个瞬间,本身不携带“首尔上午”或“纽约前一晚”这样的当地日历表述。页面把数值显示为日期时,需要按所选或页面说明的时区解释;同一个值在不同地区可能落在不同日期。来自日志、数据库和前端代码的时间戳还可能分别使用秒或更细单位,不能只因位数看起来较长就盲目删除末尾字符。排查时应从源系统文档确认单位、是否允许小数及无值的表示,再把原始值与转换结果并列保存,避免复制人类日期后丢失时区信息。

从日期反算时间戳时,要先说明输入的是UTC还是某个地区的本地墙上时间。夏令时切换可能让当地某些时刻重复或不存在,简单添加固定偏移不能覆盖历史与未来的时区规则;应让具有时区数据库的目标系统完成最终解析。负值、很远日期和旧运行环境的整数范围也可能得到不同支持,页面返回结果不代表所有数据库都能存储。调试接口时记录单位、时区名称、解析格式和运行环境,并用实际系统进行往返测试;若日志顺序关系到审计,还要核对服务器时钟与事件采集延迟。导出给他人时最好同时附上可读UTC时间和预期本地显示,尤其不要使用含糊的地区缩写。若数据跨多个服务,逐层检查是否重复应用了时区偏移;常见错误不是时间戳本身变化,而是同一瞬间被先按本地解析、随后又转换一次。