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

如何配置OpenAPI规范避免swagger-codegen等工具转换无时区日期格式

解决方法

问题原因

Swagger Codegen和OpenAPI Generator存在默认类型推断逻辑:如果未给string类型参数显式指定format,且example内容符合日期时间特征,会自动将该字段识别为date-time类型,强制转换为带时区的ISO 8601格式展示。

修复方案

在你定义的string类型日期时间字段的schema中新增2项配置,即可关闭自动转换:

  1. 显式指定自定义非标准format,避免被识别为默认的date-time格式
  2. 新增pattern规则,明确匹配你需要的无时区日期时间格式,阻断自动类型推断

修改后的对应schema代码片段如下:

# 路径参数部分修改
schema:
  type: string
  format: local-datetime # 自定义format,标识为本地无时区时间
  pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$' # 匹配你需要的日期时间格式
  example: "2021-09-01 00:00:00"

# 返回体字段部分同理修改
dateTime2:
  type: string
  format: local-datetime
  pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
  example: "2021-09-01 00:00:00"

生效验证

修改test.yml文件后,重新执行原有生成命令启动服务,访问UI后即可看到example会原样展示为2021-09-01 00:00:00,不会被自动转换。

问题效果截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:27:03