gpt4 book ai didi

java - Swagger 的日期字段与日期时间字段

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:08:18 27 4
gpt4 key购买 nike

我正在使用 swagger 来测试我的 rest api,我的实体类的一个属性是一个日期字段,我需要 yyyy-mm-dd 格式的日期,但是 swagger 模型模式将该字段显示为日期-时间而不是日期字段,因此它给出了带有时间和区域的日期。如何将此日期时间转换为日期字段?

我有一个 java 实体类 TimeEntry.java,它的属性之一是 Date,它看起来像这样。

@ApiModelProperty(required = true)
@JsonFormat(pattern = DATE_FORMAT)
private Date date;

对于这个字段,在 swagger UI 模型架构中,字段日期显示为“date”:“2016-01-08T22:34:22.337Z”,但我需要它作为“date”:“2016-01-08 “。

我尝试了以下方法:

1.

@ApiModelProperty(required = true, dataType="date")  
@JsonFormat(pattern = DATE_FORMAT)
private Date date;

2.试图遵循此代码(覆盖 OverrideConvertor 类)但找不到 swagger-core 1.3 版本 mvn repo 。仅提供 1.5 版本 https://github.com/swagger-api/swagger-core/wiki/overriding-models

  1. 显然从 1.5 版本开始,他们已经删除了 OverrideConvertor 类 https://groups.google.com/forum/#!topic/swagger-swaggersocket/ChiknyHZiP4

请帮忙。

最佳答案

java.util.Date 的问题(实际上是问题之一)是它实际上是一个日期时间,而 swagger 正确地检测到了它。我确实知道 @JsonFormat 也是解决此问题的方法——swagger 在类型检测期间不支持该注释。

您有三个选项来正确处理日期类型。

1) 使用 Joda 的 LocalDate 作为数据类型。如果您声明了 private LocalDate 日期,它将正确显示。

2)使用java8的LocalDate,同上。

3) 告诉 swagger 在检测注解中的类型时使用以上任一方法,但将属性保留为 java.util.Date 类型:

@ApiModelProperty(required = true, dataType = "org.joda.time.LocalDate")

然后,在扫描时,swagger 会将其检测为 date 格式的字符串。

关于java - Swagger 的日期字段与日期时间字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34726086/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com