spring5 配置 spring mvc 使用 ObjectMapper 转换 日期中,时区问题

前言


本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/90614164
未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

1,关于时区


其实很简单的问题,折腾几个小时,白白浪费时间。
开始还以为是数据库的时间问题。设置了半天 jdbc的时区。结果一查询数据库发现没有问题。
存储的时候都是对的,只是在显示才有问题。
之前没有在这个问题。好像是升级到spring5 才需要配置下 返回 日期格式问题。

2,其实非常简单


网络上有关于 spring boot的配置:
https://www.baeldung.com/spring-boot-formatting-json-dates

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=Asia/Shanghai

使用srping mvc 也特别简单:

@Configuration
public class ContactAppConfig   implements WebMvcConfigurer {
 
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        //设置转换器格式,和时区。
        Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder()
                .indentOutput(true)
                .dateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"))
                .timeZone(TimeZone.getTimeZone("Asia/Shanghai"))
                .modulesToInstall(new ParameterNamesModule());
        converters.add(new MappingJackson2HttpMessageConverter(builder.build()));
    }

}

本身 Jackson2ObjectMapperBuilder 就有设置时区的方法。

开始还天真的以为 弄个 格式化,给 SimpleDateFormat 设置时区就行呢。
哎真的是,活到老学到老呢。

然后 使用 spring mvc 转换的 日期就能被正确格式了。
且时区都是对的。貌似 spring 5 不设置 格式化 也会被格式化成 yyyy-MM-dd HH:mm:ss 这样的格式。
所以都不知道哪里配置错了。。。郁闷。

3,总结


有的时候非常简单的问题,也费点时间解决。
记录下,为了白白浪费的时间。

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/90614164

博主地址是:http://blog.csdn.net/freewebsys

发布了624 篇原创文章 · 获赞 259 · 访问量 208万+

猜你喜欢

转载自blog.csdn.net/freewebsys/article/details/90614164