ISO 8601 时长构造器

在自然语言时长与 ISO 8601 时长(PnYnMnDTnHnMnS)之间双向转换,并校验边界情况

ISO 8601 时长("PnYnMnDTnHnMnS" 区间格式)的双向转换器,补充仅处理时间点的 ISO 8601 日期转换器。

自然语言 → ISO 8601:输入 "3 years 2 months 14 days"、"2.5 hours"、"36 hours"、"1 week 12 hours"、"3天2小时",甚至粘合形式 "2h30m" / "3days"。工具识别英文单词、数字单词("two")和中文数字/单位,然后输出规范的 ISO 8601 字符串。

ISO 8601 → 自然语言:粘贴 P3Y2M14D、PT36H、P1W、P0.5D 等,得到可读分解与各分量值。

校验覆盖棘手的 ISO 8601 规则:

  • "T" 之后必须跟时间单位(H/M/S),绝不能是日期单位。
  • 周(W)不应与年、月、日组合使用。
  • 小数分数只应出现在最小分量上。
  • 至少要有一个分量(单独的 P 无效)。

还按标准历法约定(1 年 ≈ 365.25 天,1 月 ≈ 30.4375 天)给出近似总秒/分/时/天,便于核对区间。

示例结果

2 个示例

把"3 years 2 months 14 days"转为 ISO 8601

自然语言时长解析为规范的 P3Y2M14D 并给出分量。

ISO 8601 duration with breakdown.
查看输入参数
{ "input": "3 years 2 months 14 days", "direction": "auto" }

把 ISO 8601 时长解析回自然语言

粘贴 PT2H30M 或 P1WT12H,得到可读形式与各分量。

ISO 8601 duration expanded into natural language.
查看输入参数
{ "input": "PT2H30M", "direction": "auto" }

关键信息

分类
开发与 Web
输入类型
text, select
输出类型
html
样本覆盖
4
支持 API
Yes

概览

ISO 8601 时长构造器是一款专为开发者和系统集成人员设计的双向转换与校验工具,支持在自然语言描述(如“3天2小时”、“2h30m”)与标准 ISO 8601 时长格式(如 P3Y2M14D、PT2H30M)之间进行快速互转,并严格校验格式规范与边界条件。

适用场景

  • 需要在配置文件或数据库中存储符合 ISO 8601 标准的持续时间(Duration)时。
  • 需要将 API 返回的复杂 ISO 8601 时长字符串(如 PT36H)解析为人类易读的自然语言时。
  • 需要校验自定义时长字符串是否符合 ISO 8601 规范(如避免周与天混用、确保 T 后面仅跟时间单位)时。

工作原理

  • 在输入框中输入自然语言时长描述(支持中英文及缩写)或标准的 ISO 8601 时长字符串。
  • 选择转换方向,支持自动识别,也可手动指定为“自然语言 → ISO 8601”或“ISO 8601 → 自然语言”。
  • 工具实时解析输入内容,校验语法规则,并输出规范化的时长字符串、各分量拆解以及估算的总时间。

使用场景

开发者在编写 Java/JavaScript 代码时,快速生成或验证 java.time.Duration 兼容的 ISO 8601 字符串。
系统运维人员解析日志或数据库中存储的复杂时间间隔数据,将其转换为直观的自然语言。
产品经理或技术写作人员在撰写 API 接口文档时,快速生成标准的时长示例和说明。

用户案例

1. 自然语言时长转 ISO 8601

后端开发工程师
背景原因
正在设计一个任务调度系统,需要将用户输入的“2小时30分钟”转换为标准的 ISO 8601 格式存入数据库。
解决问题
手动拼接 ISO 8601 字符串容易出错,特别是漏掉 T 字符或格式不规范。
如何使用
在输入框中输入 2h30m,转换方向选择“自然语言 → ISO 8601”。
示例配置
{"input": "2h30m", "direction": "nl2iso"}
效果
成功输出规范的 PT2H30M 字符串,并附带分量拆解。

2. 解析 API 返回的 ISO 8601 时长

前端开发工程师
背景原因
对接第三方 API 时,接口返回了 P1WT12H 格式的时长数据,需要向用户展示具体的时间。
解决问题
需要确认该格式的具体含义,并验证其是否包含周与时间的混合定义。
如何使用
在输入框中粘贴 P1WT12H,转换方向选择“ISO 8601 → 自然语言”。
示例配置
{"input": "P1WT12H", "direction": "iso2nl"}
效果
解析出“1 week 12 hours”(1周12小时),并确认其符合规范。

用 Samples 测试

development

相关专题

常见问题

什么是 ISO 8601 时长格式?

它是一种表示时间区间的标准格式,以 P 开头,Y/M/D 表示年月日,T 之后跟 H/M/S 表示时分秒,例如 PT2H30M 表示 2 小时 30 分钟。

工具支持中文自然语言输入吗?

支持,您可以直接输入“3天2小时”或“1.5小时”等中文描述进行转换。

为什么我输入的“P1W3D”报错了?

根据 ISO 8601 标准,周(W)不应与年、月、日(D)等其他单位组合使用,工具会对此类不规范格式进行拦截校验。

转换时如何处理小数?

标准规定小数只能出现在最小的分量上(例如 PT1.5H 是允许的,但 P1.5Y2M 是无效的),工具会严格执行此校验。

估算的总秒数是如何计算的?

工具基于标准历法约定(1年约等于365.25天,1月约等于30.4375天)进行近似换算,方便您快速核对区间。

API 文档

请求端点

POST /zh/api/tools/iso-8601-duration-builder

请求参数

参数名 类型 必填 描述
input text -
direction select -

响应格式

{
  "result": "
Processed HTML content
", "error": "Error message (optional)", "message": "Notification message (optional)", "metadata": { "key": "value" } }
HTML: HTML

AI MCP 文档

将此工具添加到您的 MCP 服务器配置中:

{
  "mcpServers": {
    "elysiatools-iso-8601-duration-builder": {
      "name": "iso-8601-duration-builder",
      "description": "在自然语言时长与 ISO 8601 时长(PnYnMnDTnHnMnS)之间双向转换,并校验边界情况",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=iso-8601-duration-builder",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

你可以串联多个工具,比如:`https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`,最多20个。

如果遇见问题,请联系我们:[email protected]