ZeroTool Workbench

时间戳转换器

将 Unix 时间戳转换为可读日期,或反向转换。支持秒和毫秒,显示 UTC 和本地时间。

100% 浏览器端运行 数据不离开你的设备 免费 · 无需注册

Timestamp → Date


Date → Timestamp

使用方法

时间戳转日期

  1. 在第一个输入框中输入 Unix 时间戳(秒或毫秒)。
  2. 点击 转换 或按回车。
  3. 点击 Now 可使用当前时间。

日期转时间戳

  1. 使用日期选择器选择日期和时间。
  2. 点击 转换 即可查看结果。

关于 Unix 时间戳

Unix 纪元始于 1970-01-01 00:00:00 UTC。每一个时刻都以相对于该起点的整数偏移量来存储。 大多数系统使用秒;JavaScript 使用毫秒。

32 位有符号时间戳将在 2038 年 1 月 19 日溢出(即 2038 年问题)。 现代 64 位系统不受影响。

示例

单位选「自动判断单位」时,工具数小数点前的位数:12 位以内按秒,13–15 位按毫秒,16–18 位按微秒,19 位及以上按纳秒。当前时刻的时间戳分别是 10、13、16、19 位。状态栏会写明按哪种单位读取,判断不对时可在列表里选择单位。

输入识别为ISO 8601(UTC)
1700000000秒2023-11-14T22:13:20.000Z
1700000000123毫秒2023-11-14T22:13:20.123Z
2147483647秒2038-01-19T03:14:07.000Z
1700000000123456微秒2023-11-14T22:13:20.123Z
1700000000123456789纳秒2023-11-14T22:13:20.123Z

2147483647 是有符号 32 位整数的最大值,2038 年问题就从这一刻开始。最后两行是微秒时间戳(如 Python time.time_ns() // 1000)和纳秒时间戳(如 Go time.Now().UnixNano()、date +%s%N)。JavaScript 的日期只精确到毫秒,毫秒以下的位数会被舍去;纳秒值超过 253,工具按大整数读取,不丢精度。

用代码转换

date +%s                      # current timestamp (Linux, macOS)
date -u -d @1700000000        # GNU date (Linux)
date -u -r 1700000000         # BSD date (macOS)
Math.floor(Date.now() / 1000)          // current timestamp in seconds
new Date(1700000000 * 1000).toISOString()  // "2023-11-14T22:13:20.000Z"
import time, datetime
int(time.time())                                                  # current timestamp
datetime.datetime.fromtimestamp(1700000000, datetime.timezone.utc)  # 2023-11-14 22:13:20+00:00

限制

  • 自动判断只看位数。 2001-09-09 之前的毫秒值只有 12 位,会按秒读取;13 位及以上的秒值(公元 33658 年之后)会按毫秒读取。这两种情况请手动选择单位。
  • 只接受数字。 指数(1e10)、十六进制和千位分隔符会报错,小数部分可以输入。
  • 「日期 → 时间戳」使用本地时区。 日期选择器里的时间按浏览器所在时区解读,同一个选择值在不同时区的电脑上会得到不同的时间戳。
  • 不计闰秒。 Unix 时间不计闰秒,JavaScript 的 Date 也一样。

FAQ

什么是 Unix 时间戳?

Unix 时间戳(又称 Epoch 时间)是从 1970 年 1 月 1 日 00:00:00 UTC 起经过的秒数,是计算领域的通用时间基准。

怎么判断是秒还是毫秒?

10 位数字基本是秒(有效期至 2286 年),13 位是毫秒,16 位是微秒,19 位是纳秒。本工具按位数自动判断并显示所用单位,也可以手动选择。

为什么本地时间和 UTC 不同?

UTC 是全球基准时间,本地时间是 UTC 加上浏览器所在时区的偏移量。

这个工具对所有时区都准确吗?

是的。JavaScript 的 Date API 使用系统的时区数据来显示本地时间。