日期时间转换
在 ISO 8601、RFC 3339、RFC 7231、Unix 秒/毫秒、只取日期或时间、相对时间、星期与年内第几天之间多种格式互转,支持选择任意 IANA 时区。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
各格式结果
没有时区信息的输入按所选时区解析;时区列表来自浏览器的 Intl.supportedValuesOf('timeZone')。
这个工具能做什么
- 看日志或接口报文时把时间戳(1700000000、1700000000000)换算成人类可读的日期,或反向把日期转成时间戳填进请求参数。
- 排查时区问题:同一个时刻在 UTC 和 Asia/Shanghai 下的 ISO、RFC 3339 与 UTC 偏移一起列出来,一眼看出差了几小时。
- 对接 HTTP 缓存或 Last-Modified 时,把任意时间转成 RFC 7231(GMT)格式。
- 写文案或做数据校对时取星期、年内第几天、相对时间(「3 小时前」)这些派生信息。
示例
输入
1700000000(时区 UTC)
输出
ISO 8601(UTC):2023-11-14T22:13:20.000Z RFC 3339:2023-11-14T22:13:20+00:00 RFC 7231:Tue, 14 Nov 2023 22:13:20 GMT Unix 秒:1700000000 Unix 毫秒:1700000000000 日期:2023-11-14 时间:22:13:20 星期:星期二 年内第几天:318 UTC 偏移:+00:00
10 位及以内的纯数字按 Unix 秒解析,11–13 位按毫秒解析;改成 Asia/Shanghai 后 RFC 3339 会变成 2023-11-15T06:13:20+08:00。
常见问题
没有时区信息的输入按什么时区解析?
按你在下拉框里选中的时区解析。比如选 Asia/Shanghai 时输入 2026-10-10 20:00,会被当作东八区的晚上八点,换算成 UTC 就是 12:00。选 UTC 则按零时区处理。
时间戳的位数怎么区分?
纯数字(可带正负号)里,去掉符号后不超过 10 位按 Unix 秒处理,11–13 位按毫秒处理,超过 13 位报错。10 位数字正好对应 2001–2038 年这个常用区间,所以不会出现歧义。
RFC 3339 和 ISO 8601 有什么区别?
ISO 8601 是更大的标准家族,RFC 3339 是其中一个面向互联网协议的子集。这里输出的 ISO 固定用 UTC 的 Z 结尾(toISOString 的格式),RFC 3339 则带上你选中时区的偏移,比如 +08:00。
相对时间为什么显示「刚刚」?
相对时间是相对当前时刻计算的,而输入的时间就在现在附近。它按区间取整:45 秒内是「刚刚」,90 秒内是「1 分钟前」,之后依次是分钟、小时、天、个月、年。
夏令时切换的时间点会算错吗?
不会。换算通过 Intl.DateTimeFormat 读取目标时区在该时刻的真实偏移,并且在偏移可能变化时用两次迭代确认,像 America/New_York 切换日那样「不存在或重复」的墙上时间会被识别为无效输入并报错。
关键词:datetimedatetime日期时间时区timezoneiso 8601rfc 3339rfc 7231day of year相对时间日期时间转换