Unix 时间戳转换
在 Unix 秒、毫秒与带时区的 ISO 时间之间转换,明确标注 0 时刻、秒/毫秒单位与 UTC(Z)/所选时区,避免把本地时间误当 UTC。
输入与参数
input— 时间戳或带时区的 ISO 时间(留空取当前真实时间)unit— 单位timeZone— 显示时区(IANA 名称,如 Asia/Shanghai)
真实示例
unit=s, input=0;以及 unit=auto, input=1700000000000
→ 0 → seconds=0, milliseconds=0, isoUtc=1970-01-01T00:00:00.000Z (UTC, Z);1700000000000 → interpretedUnit=ms, seconds=1700000000, isoUtc=2023-11-14T22:13:20.000Z
限制与失败处理
仅做单个时刻换算,不做批量、Duration、闰秒或历法转换;受 JavaScript Date 范围 ±8.64e15 ms 限制。自动单位以 |n| ≥ 1e11 判定毫秒,边界附近请显式选 s/ms。输入上限 256 字节。
FAQ
0 是什么时刻?
Unix epoch:1970-01-01T00:00:00.000Z,秒与毫秒都为 0;在 Asia/Shanghai 显示为 1970-01-01T08:00:00。
为什么拒绝不带时区的 ISO?
因为不同运行环境会隐式按本地时区解析,结果不可复现;要求结尾 Z 或 ±HH:MM。