【问题标题】:SpringFox Date format to millisecondsSpringFox 日期格式为毫秒
【发布时间】:2015-12-17 14:56:57
【问题描述】:

我正在使用SpringFox (Swagger) 来记录我的 REST API。 Swagger 的一大优点是显示示例模型和数据类型格式。

现在,我将 API 配置为以毫秒为单位生成和使用日期,但是当我查看示例 JSON 模型时,日期格式如下:"2015-09-21T00:51:32.617Z"。请参阅下面的屏幕截图。是否可以告诉 SpringFox (Swagger) 如何正确格式化日期?

【问题讨论】:

  • 我也有同样的问题。我想格式化我的日期“YYYY-MM-DD”。你找到解决办法了吗?
  • 不,我没有找到解决方案。我只需要告诉开发人员假设所有日期都将采用我指定的格式并且不要查看 Swagged 日期格式。查看我与 springfox 开发人员提出的这个 GitHub 问题:github.com/springfox/springfox/issues/979

标签: documentation swagger swagger-2.0 springfox


【解决方案1】:

你可以试试:

   Docket docket = new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(getApiInfo())
                    .directModelSubstitute(YourDateTimeClass.class, Integer.class);

基本上,您是在告诉 Swagger 将日期类替换为可以表示毫秒的整数。

【讨论】:

    【解决方案2】:

    这与底层的 Jackson 序列化器有关。您必须为其设置正确的日期格式,否则默认情况下它使用时间戳。

    这是一个示例配置

    @Configuration
    public class WebConfiguration extends WebMvcConfigurerAdapter {
    
        @Override
        public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
            for (HttpMessageConverter<?> converter : converters) {
                if (converter instanceof MappingJackson2HttpMessageConverter) {
                    MappingJackson2HttpMessageConverter jsonMessageConverter = (MappingJackson2HttpMessageConverter) converter;
                    ObjectMapper objectMapper = jsonMessageConverter.getObjectMapper();
                    objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
                    break;
                }
            }
        }
    }
    

    这样它将使用 ISO-8601 日期时间格式。这是另一篇博文,解释了如何设置自己的首选日期格式:http://yysource.com/2016/06/change-default-date-for-jackson-in-spring-boot-application/

    【讨论】:

    • +1 我正在使用 spring-hateoas,它非常好,但不会将 ObjectMapper 绑定为 bean。最近几天我一直在寻找如何访问 ObjectMapper !谢谢你分享这个。
    【解决方案3】:

    我遇到了和你类似的问题,我通过在 Spring Boot 的 application.properties 文件中添加以下配置解决了这个问题:

    spring.jackson.date-format=com.fasterxml.jackson.databind.util.ISO8601DateFormat

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      相关资源
      最近更新 更多