ZeroTool Workbench
时间戳转换器
将 Unix 时间戳转换为可读日期,或反向转换。支持秒和毫秒,显示 UTC 和本地时间。
使用方法
时间戳转日期
- 在第一个输入框中输入 Unix 时间戳(秒或毫秒)。
- 点击 转换 或按回车。
- 点击 Now 可使用当前时间。
日期转时间戳
- 使用日期选择器选择日期和时间。
- 点击 转换 即可查看结果。
关于 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 使用系统的时区数据来显示本地时间。