日期与时间

ISO 8601 日期转换把日期字段与真实时间点分清

每行输入一个 ISO 或 RFC 日期。无时区的日期时间默认保持未指定,也可明确选择按 UTC 解释。

ISO 8601 日期转换

输入

输入仅在当前浏览器中处理,不会发送到服务器。

结果

选项

每行一个值,例如 2024-01-01T08:00:00+08:00、2024-01-01、08:00 或 Sun, 06 Nov 1994 08:49:37 GMT。

最多九位小数秒。Unix 秒和毫秒向下取整,纳秒保持精确;HTTP 结果要求整秒。

最多 1000 行、总共 100000 个 UTF-16 代码单元、单行 512 个。空行作为错误保留。

输入内容或载入示例以开始。

ISO 8601 日期转换适合检查接口响应、邮件头或日志里的一段日期文字。界面上相差八小时的两个值,可能指向同一瞬间;没有偏移量的文字,也可能根本不足以确定一个时间点。

这里保留原始输入与字段拆解,方便追查变化发生在哪里。日期溢出不会被自动修正为下个月,错误行也不会让后面的有效结果错位。

为什么使用 ISO 8601 日期转换

偏移不同,仍可指向同一瞬间

ISO 8601 日期转换会把 08:00+08:00 与同一天的 00:00Z 分别拆出原始时分和偏移,再给出相同的 Unix 值。检查 UTC 时间转换时,能看清日期变化是来自偏移计算,还是输入本身出了问题。

两个指针位置不同的时钟,通过连线指向共同时间轴上的同一点。

信息不足,就保留缺失状态

只有日期时不补午夜,只有时间时不补今天。完整日期时间缺少时区时,会说明无法计算瞬间;即使选择按 UTC 解释,也不会替不完整输入补上缺失的日期或时间。

完整的日期、时间与偏移组合通向时间轴,缺少组成部分的组合停在黄色标记旁。

先核对上下文,再比较结果

01

先看识别到的格式

ISO8601 日期解析会区分完整的 RFC 3339 日期格式与兼容输入。使用空格分隔、省略秒或写成 +0800 的值仍可解析,但不会被标成严格的 RFC 3339 子集。标准化输出会补齐秒并使用冒号偏移。

02

只有明确知道来源时才指定 UTC

无时区策略只影响完整日期时间。保留未指定适合来源不明的日志;选择按 UTC 解释后,报告会记录这一假设。输入已经写明偏移时,以输入为准。

03

确认警告与行数

自动解析在停止编辑 350 毫秒后执行;关闭后使用按钮或 Ctrl/Cmd + Enter。改动立即使旧报告过期,复制和下载会暂时禁用。每次展开增加 50 行,导出始终包含整个批次。

从原始字段核对到标准结果

严格核对公历日期

年份、月份与日期一起验证,闰年按实际日历处理。2 月 30 日不会变成 3 月,小时、分钟与秒超界也不会悄悄进位。错误保留在原行,便于回到数据源修正。

RFC 邮件日期与星期检查

RFC 2822 转换接受声明的英文月份、数字偏移及 GMT、UT 子集。若输入带星期,必须与日期相符。标准 HTTP 日期会单独标记,兼容邮件写法则继续显示为邮件格式。

九位小数秒不丢失

解析后保留小数位与精确纳秒整数,UTC 结果固定显示九位。Unix 秒和毫秒向下取整,1970 年前的负数也遵循同一规则,可对照纳秒值判断舍去了多少精度。

HTTP 输出有精度条件

仅当时间点为整秒,且 UTC 年份处于 1900–9999 时,才生成 IMF-fixdate。小数秒不会为了生成 HTTP 头而被截掉;精确 ISO 结果仍保留,并说明不可用原因。

支持哪些写法,哪些信息不会猜

无时区不采用本机设置
完整日期时间没有偏移时,默认只显示字段和标准化形式,不生成 UTC、Unix 或 HTTP 值。用户可明确按 UTC 解释,并在报告中留下假设;仅日期和仅时间不受这个选项补齐。
只接收明确的 ISO 子集
支持 YYYY-MM-DD、HH:mm[:ss[.fraction]],日期时间可用 T、t 或一个空格连接。偏移可为 Z、z、±HH:MM 或 ±HHMM。输入及换算后 UTC 年份均限 0001–9999;不支持周日期、序数日期、基本格式、区间与时长。
不静默修复或截断
小时限 00–23,秒和分钟限 00–59;拒绝闰秒、24:00、小数逗号与超过九位的小数。负零偏移保留“原本地偏移未知”的含义,但仍能确定 UTC,不能与完全缺少时区混为一谈。
RFC 只支持可核对的子集
邮件日期使用英文月份、可选且正确的星期、1900 年起的四位年份、数字偏移或 GMT、UT。不支持注释、折叠头、两位年份、其他时区缩写,也不接收旧式 HTTP 日期。
批次容量与任务边界
最多 1000 个物理行,总长度 100000 个 UTF-16 代码单元,单行最多 512 个;空行保留为错误。不读取文件或 URL,不识别地区斜杠日期、纯数字时间戳,也不做地区时区和夏令时换算。

ISO 8601 日期转换常见问题

结尾的 Z 是什么意思?

Z 表示零 UTC 偏移。例如同一天的 08:00+08:00 与 00:00Z 是同一瞬间。这只能说明该表示的偏移,不能据此知道数据最初来自哪个地区。

ISO 8601 和 RFC 3339 是一回事吗?

不是。ISO 8601 包含多种日期和时间表示,RFC 3339 规定了一种适合互联网时间戳的格式。本工具只标记实际满足所声明子集的输入,也明确拒绝闰秒等尚未支持的形式。

T 这个分隔符是必须的吗?

本工具接受大写 T、小写 t 或单个空格作为完整日期时间的分隔符。输出统一使用 T;空格输入会标成 ISO 兼容日期时间,不把它误标为这里的 RFC 3339 子集。

RFC 9557 是什么?

RFC 9557 在 RFC 3339 时间戳上增加可选信息,例如方括号内的时区名称。本页不解析这类注解;如果原始值带有方括号,应先核对其偏移与地区规则,不能认为去掉名称总是没有影响。

JavaScript 里怎么解析 ISO 风格的时间戳?

JavaScript 的 Date 可以读取常见 ISO 字符串,但精度限于毫秒,不同形式的无时区输入也可能有不同解释。本页使用明确语法与纳秒计算,拒绝不支持的写法,并把缺时区状态留给用户判断。

结果与预期不同?

回到原始日期,核对实际含义

将来源文字放回 ISO 8601 日期转换,比较原始字段、偏移量与精确 UTC 值,再保存完整检查报告。