将 epoch 时间转换为可读日期,反之亦然
这款 Unix 时间戳转换工具可将 epoch 数值转换为易读的日期——UTC、你所在的时区以及任意其他时区——也能把日期和时间转换回时间戳。它会自动识别秒、毫秒、微秒和纳秒,还能读取 ISO 8601 及其他日期字符串,并以 ISO 8601、RFC 2822、HTTP 日期和“3 天前”这样的相对时间显示结果。实时时钟显示当前 Unix 时间,批量模式可一次转换整个列表。一切都在你的浏览器中运行。
如何转换 Unix 时间戳
- 1将
1700000000或1700000000123这样的时间戳粘贴到 时间戳 → 日期。单位根据位数自动识别;如果判断有误,请手动选择。 - 2查看 UTC、你的时区以及工具栏所选时区下的日期,并附有 ISO 8601、RFC 2822 和相对时间格式。点击任意一项旁边的复制图标即可复制。
- 3反向转换时,打开 日期 → 时间戳,选择日期、时间和时区,然后复制秒或毫秒。
- 4要转换大量数值,打开 批量,每行粘贴一个,然后复制结果或下载为 CSV。
什么是 Unix 时间戳?
Unix 时间计算的是自 Unix 纪元 1970 年 1 月 1 日 00:00:00 UTC 以来经过的秒数。它是一个不含时区的单一数字,非常适合存储和比较时间点:1700000000 在世界任何地方都表示 2023 年 11 月 14 日 22:13:20 UTC,只有显示方式取决于你所在的位置。
1970 年之前的时间为负数——-86400 表示 1969 年 12 月 31 日——并且 Unix 时间忽略闰秒:每天恰好 86,400 秒,因此计数保持简单,闰秒由时钟吸收而不被计入。
秒、毫秒、微秒和纳秒
自动识别依据位数:最多 11 位为秒,12 到 14 位为毫秒,15 到 17 位为微秒,更多则为纳秒。这对 1973 年到 5138 年之间的任何日期都准确。对于非常接近 1970 年的日期,请手动选择单位。
- 秒(10 位)
- 经典的 Unix 时间,用于 Unix 工具、PHP 的 time()、Python 的 int(time.time())、JWT 的 exp 和 iat 声明以及大多数数据库。示例:1700000000。
- 毫秒(13 位)
- 用于 JavaScript 的 Date.now()、Java 的 System.currentTimeMillis() 以及许多 JSON API。示例:1700000000123。
- 微秒(16 位)
- 用于 PostgreSQL 内部存储、Python datetime 的精度以及部分日志系统。示例:1700000000123456。
- 纳秒(19 位)
- 用于 Go 的 time.UnixNano()、InfluxDB 和 Prometheus。示例:1700000000123456789——本工具使用任意精度运算,因此能精确保留。
日期格式说明
粘贴日期字符串时,其中包含的时区会被采用。带时间但没有时区的字符串(如 2024-03-10 08:30)按你的本地时间读取,而只有日期的字符串(如 2024-03-10)按 UTC 午夜读取——这是 JavaScript 遵循的规则——工具会告诉你采用了哪种方式。
- ISO 8601 / RFC 3339
- <code>2023-11-14T22:13:20.000Z</code>——JSON API 和数据库使用的格式。Z 表示 UTC;否则后面跟随偏移量,如 <code>+05:30</code>。按文本排序即可得到正确顺序。
- RFC 2822
- <code>Tue, 14 Nov 2023 22:13:20 +0000</code>——电子邮件 Date 头的格式,RSS 也使用它。
- HTTP 日期
- <code>Tue, 14 Nov 2023 22:13:20 GMT</code>——RFC 9110 的 IMF-fixdate 格式,始终使用 GMT,用于 Date、Expires、Last-Modified 头以及 Cookie。
时区与夏令时
时区列表包含浏览器已知的所有 IANA 时区,如 America/New_York、Europe/Berlin 或 Asia/Kolkata,以及完整的夏令时历史。将日期转换为时间戳有两种棘手情况:春季时钟拨快时,02:30 这样的本地时间会被跳过;秋季则有一个小时出现两次。本工具将被跳过的时间读作跳变之后的时刻,将重复的时间读作第一次出现,并在发生时提示你。
请以 UTC 存储和传输时间戳或 ISO 8601 字符串,仅在显示时转换为本地时区。对于按固定时刻重复的计划任务,请参阅 Cron 表达式生成器。
2038 年问题
以有符号 32 位整数存储 Unix 时间的系统最多只能计到 2,147,483,647,即 2038 年 1 月 19 日 03:14:07 UTC。一秒后数值溢出为负数,被读作 1901 年 12 月。现代 64 位系统可安全使用数十亿年;请检查嵌入式设备、旧文件格式以及声明为 32 位 INT 的数据库列。在上方粘贴 2147483647 即可查看这一时刻,或在 进制转换器 中查看位模式。
常见问题
- 如何将 Unix 时间戳转换为日期?
- 将其粘贴到“时间戳 → 日期”。工具会识别它是秒、毫秒、微秒还是纳秒,并显示 UTC、你的本地时间以及所选任意时区的日期。
- 如何获取当前 Unix 时间戳?
- 顶部的实时时钟会以秒和毫秒显示。在代码中:JavaScript 用 Math.floor(Date.now() / 1000),Python 用 int(time.time()),PHP 用 time(),Unix shell 用 date +%s。
- 如何判断时间戳是秒还是毫秒?
- 数一数位数。当前以秒计的时间戳为 10 位,以毫秒计为 13 位;微秒为 16 位,纳秒为 19 位。工具会自动判断并显示所用单位。
- Unix 时间戳是 UTC 吗?
- Unix 时间戳本身没有时区:它计算自 1970 年 1 月 1 日 UTC 午夜以来的秒数,因此在任何地方都指同一时刻。只有显示为日期时才涉及时区。
- 2038 年会发生什么?
- 2038 年 1 月 19 日 03:14:07 UTC,Unix 时间将超过 2,147,483,647,即有符号 32 位整数的最大值。仍以 32 位存储时间的软件会溢出;64 位时间不受影响。
- 可以转换 1970 年之前的日期吗?
- 可以。纪元之前的日期对应负数时间戳;-86400 表示 1969 年 12 月 31 日 00:00 UTC。工具接受负值,并对 1970 年之前的日期返回负值。
- Unix 时间计算闰秒吗?
- 不计算。Unix 时间将每天视为恰好 86,400 秒,因此不计闰秒,任何日期的时间戳都可以通过简单算术求得。
- 会向服务器发送数据吗?
- 不会。所有转换(包括时区规则)都使用浏览器内置的 Intl 支持在你的浏览器中完成。