You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

YAML时长数字格式规则是什么?属规范还是扩展实现?

YAML中hh:mm:ss格式被解析为秒数的原因

这不是YAML核心规范定义的行为,而是以PyYAML为代表的主流实现添加的扩展类型解析逻辑。

核心规范说明

YAML 1.2及更早版本的官方规范里,并没有规定无引号的h:mm:ss格式字符串需要自动转换为秒数。按照规范,这类未加类型标签的冒号分隔内容,默认应被解析为普通字符串。

主流实现的扩展逻辑

像PyYAML这类库默认启用了额外的类型识别规则,其中包含对时间间隔格式的解析:

  • 当字符串是无前导零的小时/分钟开头的h:mm:ss或mm:ss格式时,会被自动识别为时间间隔,转换为对应的总秒数整数(比如1:00:00计算为3600秒,30:00计算为1800秒)。
  • 一旦小时或分钟部分带有前导零(比如01:00:00、00:30:00),就不会触发这个解析规则,会被保留为原始字符串。

强制保留字符串的方法

如果需要让这类格式始终被解析为字符串,只需给值添加单引号或双引号:

value_1: "1:00:00"
value_2: '01:00:00'

转换为JSON后就会得到预期的字符串结果:

{
    "value_1": "1:00:00",
    "value_2": "01:00:00"
}

内容的提问来源于stack exchange,提问作者kjschiroo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 20:45:27