@JsonFormat 使用和转换配置失效问题解决-程序员宅基地

技术标签: java  

1.@JsonFormat  作用

@JsonFormat注解是一个时间格式化注解,可以将date日期格式转化为json的时候,输出的指定格式例如:yyyy-MM-dd HH:mm:ss

 

2.@JsonFormat 使用方法

 maven引入:

       <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.10.4</version>
        </dependency>

注解使用再配置信息中,使用pattern 自定义转化的格式,timezone 设定时区。

每个注解都要设置配置过于繁琐,并不好维护所以我们将配置写入application.properties 设这全局的配置

spring.jackson.parser.allow-numeric-leading-zeros=true 作用
spring.jackson.parser.allow-numeric-leading-zeros=true
#设置配置的时区
spring.jackson.time-zone=GMT+8

 

3.@JsonFormat 遇到的问题和问题原因

  • 时间转化后比正常时间少8个小时:

      @JsonFormat 默认的时区是Greenwich Time, 默认的是格林威治时间,而我们是在东八区上,所以时间会比实际我们想得到的时间少8个小时。

       检查配置信息,发现已配置全局配置信息 spring.jackson.time-zone=GMT+8 ,时区配置正常。怀疑全局配置失效,所以直接在注解上设置时区:  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

        运行后发现依旧无效,时区还是差8个小时。

       最后发现有人手动注入Bean ,设置了中文编码格式忘记将配置信息set,导致项目配置失效。

 @Bean
    public MappingJackson2HttpMessageConverter getMappingJackson2HttpMessageConverter() {
        MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
        //设置日期格式
        ObjectMapper objectMapper = new ObjectMapper();

        mappingJackson2HttpMessageConverter.setObjectMapper(objectMapper);
        //设置中文编码格式
        List<MediaType> list = new ArrayList<>();
        list.add(MediaType.APPLICATION_JSON_UTF8);
        mappingJackson2HttpMessageConverter.setSupportedMediaTypes(list);
        return mappingJackson2HttpMessageConverter;
    }

4.解决方法

在objectMapper 后加入两行代码,将配置信息设置进去

    objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8"));
    objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/foralllove/article/details/113029402

智能推荐

java秒转换为年月日_SimpleDateFormat将月/日/年 时分秒转换为年-月-日 时:分:秒-程序员宅基地

文章浏览阅读7.9k次。String expirTime = ”12 / 27 / 2018 12: 00: 00 AM”;SimpleDateFormat in = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");SimpleDateFormat out = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");try {idpData.setE..._simpledateformat 修改时分秒

经历印度一年中最严重的空气污染是种什么体验? | 经济学人全球早报精选-程序员宅基地

文章浏览阅读208次。文 / 王不留(微信公众号:考研英语笔记)2021年11月4号的清晨,来杯“经济学人浓香咖啡”,提神解困。Hold your breath: air pollution in IndiaOn Wednesday Delhi sucks in a last gasp of cleanish air before Diwali begins the following day. For many Hindus this holiday is the most joyous: it

SQL: "IN" Function_"in function\"phi"-程序员宅基地

文章浏览阅读7.8k次。 SQL: "IN" FunctionThe IN function helps reduce the need to use multiple OR conditions.译:IN函数有助于减少OR条件的复合使用。The syntax for the IN function is:译:IN函数的语法:SELECT columnsFROM tablesWHERE col_"in function\"phi"

【每日蓝桥】36、一六年省赛Java组真题“凑算式”_凑算式解题思路-程序员宅基地

文章浏览阅读2.5k次,点赞28次,收藏3次。你好呀,我是灰小猿,一个超会写bug的程序猿!欢迎大家关注我的专栏“每日蓝桥”,该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想、数据结构等内容,帮助大家学习到更多的知识和技术!标题:凑算式解题思路:本题的求解思路是:首先应该对1~9这9个数进行全排列,排列之后数组中的数字安装题目要求分割,这个时候我们要注意的是:得到的三个数据都是分数,且分母不相同,这个时候我们就需要对数据进行同分,得到分母一样的三个数字,之后再对这三个数字相加,判断得到的分子是否_凑算式解题思路

完美解决ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)_error 1045 (28000): access denied for user 'root'@-程序员宅基地

文章浏览阅读6.4w次,点赞208次,收藏219次。对于出现"ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)"的问题,一般是由于MySQL的访问权限配置问题导致的。_error 1045 (28000): access denied for user 'root'@'localhost' (using passwor

【Latex】PPT画图并插入图片_latex插入emf图片-程序员宅基地

文章浏览阅读2.8k次,点赞4次,收藏10次。引言图片是几乎所有SCI等学术论文的标配,同时也是影响论文接受的重要因素之一。本文将介绍制作符合Latex要求的图片和引入图片的流程。利用PPT制作图片PPT是迄今为止最好的、最强大的画图工具,直接利用PPT自带的图形工具即可完成图形制作;完成后,ctrl + A 全选所有的控件;单击右键选择“另存为”;注意保存类型选择为"*.emf"格式;注意:WPS的ppt不支持该格式,只能使用office软件。制作EPS图片打开word软件,菜单项“插入”,选择刚才制作完成的emf图片;保_latex插入emf图片

随便推点

springcloud微服务docker部署跨主机无法访问的解决方案_docker 部署在两个不同的宿主机 程序找不到另一个服务器上的程序-程序员宅基地

文章浏览阅读5k次。微服务采用docker部署,一般采用net=bridge桥接的模式来进行部署,这样就导致了,跨主机无法访问(本机可以)。原因是桥接模式情况下,docker会自动分配一个地址,该地址和另外主机分配的不是一个网段,导致无法相互访问。解决方案1. net设置为host模式这中方式直接采用主机网络,无法产生网络隔离的效果,但是只要主机之间能够互相访问,各个docker之间就能互相访问。不过这种..._docker 部署在两个不同的宿主机 程序找不到另一个服务器上的程序

pikachu练习——sql注入_手工注入完成“sql注入”下的“get型”,得到所有账号的明文口令-程序员宅基地

文章浏览阅读2.1k次。一、字符型注入(get)(1)随便输入name,获取url:因pikachu登录需要用户名及密码,所以查询网页cookie绕过:(2)使用sqlmap查找该网站数据库:python sqlmap.py -u "http://127.0.0.1:8083/vul/sqli/sqli_str.php?name=123&submit=查询" --cookie="PHPSESSID=plhm5hfit589nq6h01tiq4u3f3; security=low" --dbs --_手工注入完成“sql注入”下的“get型”,得到所有账号的明文口令

win10安装与破解loadrunner一系列问题-程序员宅基地

文章浏览阅读1.1w次。我在安装和破解loadrunner11的过程中,遇到主要三个问题:1.安装.netframework3.52.deletelicense.exe运行之后提示 failed3.以管理员身份运行提示受阻

从mediaserver入手学习快速理解binder机制_mediaserver手动起-程序员宅基地

文章浏览阅读1.9k次,点赞3次,收藏2次。(一) 概述 android的binder机制提供一种进程间通信的方法,使一个进程可以以类似远程过程调用的形式调用另一个进程所提供的功能。binder机制在Java环境和C/C++环境都有提供。 android的代码中,与C/C++的binder包括一些类型和接口的定义和实现,相关的代码在下面这几个文件中: frameworks\base\include\uti_mediaserver手动起

取模运算优化超级算法_取模优化 acm-程序员宅基地

文章浏览阅读5.4k次,点赞10次,收藏2次。【代码】取模运算优化超级算法。_取模优化 acm

高斯混合模型的实现(EM算法)_c# 高斯混合模型-程序员宅基地

文章浏览阅读310次。Input:观测数据Xn×dX_{n\times d}Xn×d​, 类别数ccc, 迭代停止条件 toltoltolOutput: 模型参数(pic×1pi_{c\times 1}pic×1​, muc×dmu_{c\times d}muc×d​, sigmac×d×dsigma_{c\times d\times d}sigmac×d×d​ )“”"ccc:类别数nnn:数据总数ddd..._c# 高斯混合模型

推荐文章

热门文章

相关标签