Epoch → 日期

epoch 转日期转换器

在线把任何 Unix 时间戳转换为可读日期。粘贴一个值,转换器会检测秒还是毫秒,并在任意时区显示 ISO 8601、UTC、本地日期、时间、星期和相对时间。

当前 Unix 时间戳 · 实时
1783399210
 

从 Unix 时间戳得到日期

从时间戳得到日期正是本工具所做的。如果你需要从 Unix 时间戳得到日期——即取这个整数并读出日历上的日、时、分——把值粘贴到上面的转换器中。页面会自动检测 10 位的秒和 13 位的毫秒,并以 ISO 8601、UTC 以及你选择的任意 IANA 时区显示得到的日期。在代码中,同样的操作在每种主流语言里都是一行。

  • JavaScript: new Date(1700000000 * 1000).toISOString() → "2023-11-14T22:13:20.000Z"
  • Python: datetime.fromtimestamp(1700000000, tz=timezone.utc).isoformat()
  • PHP: gmdate('c', 1700000000)
  • Shell: date -u -d @1700000000 (Linux/macOS coreutils)

将 Unix 时间戳转换为可读日期

纪元时间对系统来说紧凑而可靠,但肉眼难以查看。本页专注于时间戳到日期的方向:输入以秒为单位的 10 位 Unix 时间戳,或以毫秒为单位的 13 位时间戳,选择时区,将同一时刻读作普通的日历日期。

各输出格式的含义

转换器会返回几种常见的日期格式,便于你复制工作流所需的那一种。

  • ISO 8601 包含本地 UTC 偏移,是 API 和日志最安全的格式
  • UTC 字符串以协调世界时显示同一时刻
  • 友好的本地输出适合查看日程或调试事件的人
  • 相对时间有助于确认时间戳在过去还是未来

秒与毫秒

大多数后端语言使用 Unix 秒,而 JavaScript 和许多浏览器 API 使用毫秒。转换器根据数字的大小检测单位,从而避免把现代时间戳转换成 1970 年附近日期这一常见错误。

调试时间戳输入

如果转换后的日期显得过于久远或在很远的未来,问题通常出在时间戳单位上。现代以秒计的 Unix 时间戳有 10 位,而现代以毫秒计的时间戳有 13 位。API 有时会把两者都简单地标为纪元时间,所以在把值复制到日志、SQL 查询或测试夹具之前,请先确认单位。

  • 像 1700000000 这样的值是秒,应转换为 2023 年的日期
  • 像 1700000000000 这样的值是毫秒,可直接传给 JavaScript Date
  • 如果日期落在 1970 年 1 月,你很可能在该用毫秒的地方用了秒
  • 如果日期落在几万年之外,你很可能又把毫秒乘了一次

ISO 8601、RFC 3339 与时区感知输出

本转换器返回的 ISO 8601 字符串更确切地说是 RFC 3339——JSON API 和现代互联网协议所用的 IETF 子集。Unix 时间戳是一个精确时刻;把它转换成挂钟日期需要选择时区。Intl.DateTimeFormat 是在 JavaScript 中生成本地化输出字符串的正确方式。

  • 规范 UTC 形式:2024-03-15T14:30:00Z(ISO 8601 的 RFC 3339 子集)
  • 偏移形式:2024-03-15T14:30:00+09:00 —— 在机器可读输出中绝不要省略 Z 或偏移
  • 时刻与挂钟时间:Unix 时间戳在任何地方都是同一时刻;挂钟读数取决于所选的 IANA 时区
  • 机器可读输出应优先使用 ISO 8601 / RFC 3339
  • 在 JavaScript 中面向人的输出,使用 Intl.DateTimeFormat 以获得按语言的月份名称、12 小时与 24 小时制以及星期格式
  • 在 Java 中:Instant.toString() 直接输出 ISO 8601;ZonedDateTime.toString() 包含偏移
  • 在 Python 中:对带时区的 datetime 调用 datetime.isoformat() 返回 RFC 3339

相关文章

epoch to time、epoch to timestamp —— 都是同一种转换

不同的搜索表述 ——「epoch to time」「epoch to timestamp」「convert epoch to time」「epoch time to date」「convert unix timestamp to time」「convert unix time to time」「convert from unix timestamp」—— 都描述本页执行的操作:取一个 10 位或 13 位的 Unix 整数(也称 epoch unix timestamp、epoch unix time 或 unix time_t),返回对应的日历日期。输出以 ISO 8601、UTC 以及时区感知的本地形式显示,涵盖了「epoch time to date」「unix to timestamp」或「epoch timestamp converter」的典型意图。

  • epoch to time / epoch to timestamp / epoch time to date / convert epoch to time
  • convert unix timestamp to time / convert unix time to time
  • epoch unix time converter / epoch unix timestamp / epoch unix time
  • epoch convertor(拼写错误)/ epoc time(拼写错误)/ epochtime / epochconverter
  • POSIX time_t 和 unix time_t 是本页接受的同一个 32 位或 64 位整数

Linux 时间转换器、Linux 时间戳转换器与 ISO 8601 日期格式

在 Linux 和 macOS 上,同样的转换已内置于 shell。人们将其搜索为「linux time converter」「linux time conversion」或「linux timestamp converter」—— 都指本页用界面封装的同一个 coreutils date(1) 命令。输出格式与 JSON API、HTTP 头和现代数据库所用的 ISO 8601 日期格式 / RFC 3339 标准一致。

  • Linux 时间转换器 / linux timestamp converter —— epoch → 日期:date -u -d @1700000000
  • Linux 时间转换 —— 日期 → epoch:date -u -d "2023-11-14 22:13:20 UTC" +%s
  • Linux 上的当前纪元时间:date +%s(秒)或 date +%s%3N(毫秒)
  • ISO 8601 日期格式 / RFC 3339:2023-11-14T22:13:20Z(Z = UTC)或 2023-11-14T22:13:20+09:00(偏移)
  • macOS coreutils(BSD date)使用不同的标志:date -u -r 1700000000(注意是 -r 而非 -d @)
  • GNU date(1) 手册页记录了每个输出格式指令 —— %s 表示纪元秒,%Y-%m-%d 表示 ISO 日期

更多变体:epoch to datetime、unix time to datetime、unix epoch to date、datetime to milliseconds

以下所有表述都描述本页的同一种转换:「epoch to datetime」「epoch time to datetime」「epoch to time converter」「unix time to datetime」「unix time to utc」「unix epoch to date」「convert unix time to datetime」「datetime conversions」「datetime to milliseconds」「date to milliseconds」和「iso 8601 datetime format」。输出已经包含带 UTC 偏移的 ISO 8601 datetime 格式,这是规范的机器可读形式。

  • Epoch to datetime / epoch time to datetime / epoch to time converter —— 粘贴一个 Unix 整数,得到对应的 datetime
  • Unix time to datetime / convert unix time to datetime —— 同一操作;SQL/Python/Java 的「datetime」一词与界面「date」输出含义相同
  • Unix time to UTC / unix time to utc —— 页面输出已包含以 UTC 呈现的同一时刻
  • Unix epoch to date / unix epoch to date / unix date stamp —— 同一转换;「unix date stamp」是口语化同义词
  • Datetime to milliseconds / date to milliseconds —— JavaScript:new Date("2024-03-15T14:30:00Z").getTime() 返回 13 位的毫秒时间戳
  • Datetime conversions / datetime conversions —— 对同一时刻,date ↔ datetime 是空操作;两者指同一时刻
  • ISO 8601 datetime format / iso 8601 datetime format —— 例如 2024-03-15T14:30:00+00:00(带偏移)或 2024-03-15T14:30:00Z(UTC 短形式)

这种转换的其他名称

同样的纪元到可读日期操作有许多搜索方式:timestamp to date、date from timestamp、convert timestamp to datetime、unix to datetime、date from unix timestamp、ms to date、time from epoch。它们都描述本页执行的操作——粘贴一个整数纪元值,读出日历 datetime。

  • 同义词:timestamp to datetime、unix to datetime、epoch to datetime、ms to date
  • 反方向在 /date-to-epoch —— 粘贴一个日历日期,得到整数
  • 常见混淆:「datetime」与「date」—— 对同一时刻是同一个值,只是呈现方式不同

纪元时间、可读日期与本地时区

每个 Unix 时间戳都是一个时间点——自 1970 年 1 月 1 日 00:00:00 UTC 起以秒计量的精确时刻。要把这个整数变成可读日期,你需要选择一个本地时区,因为同一时间点会因查看者所在位置而显示为不同的本地时间。现代操作系统(Linux、macOS、Windows、BSD)都在内部将挂钟存为 Unix 纪元,并在显示时格式化为可读日期。

  • 1970 年 1 月 1 日 00:00:00 UTC 是 Unix 纪元 —— 每个 Unix 时间戳计数起点的时间零点
  • 可读日期取决于所选的本地时区 —— 同一时间点,不同的本地时间
  • 现代操作系统(Linux、macOS、Windows、BSD)都在内部将挂钟存为 Unix 纪元,仅在显示时转换为本地时间
  • 本地时区正是把抽象的时间点变成与查看者本地时间相符的可读日期的关键