jsonformat注解失效怎么办?jsonformat注解失效及解决方法

阳光 2021-06-03 21:10:14 java常见问答 3307

JsonFormat注解是一个时间格式化注解,比如我们存储在mysql中的数据是date类型的,当我们读取出来封装在实体类中的时候,就会变成英文时间格式,但是也不排除jsonformat注解失效的情况,下面我们就给大家讲解一下sonformat注解失效及解决方法。

场景:

在使用springboot的框架下,可以利用@jsonFormat作为注解来消除时差.但是在使用的过程中发现有一种情况下这个注解会失效.

在数据库第一张表table1中我只需要存入小时和秒,而且作比较的时候也是只用来比较小时和秒,于是在insert进去之后,sql server数据库自动的补充上了年,也就是数据库的初始时间的年,如下:

jsonformat注解失效怎么办?jsonformat注解失效及解决方法.jpg

现在我需要从这张表中取出来年插入另一张临时表table2中,

注意就是这里出的错,因为我当时想只需要hh:mm所以我就直接用截取字符串的形式取值的,如下:

1.jpg

之后我的临时表中的数据默认在数据库中是

2.jpg

然后我在查询table2并显示的时候发现用@JsonFormat注解发现了失效的情况.并且只有在超过12点之后就会有误差,如下:

3.jpg

解决方案:

修改sql代码:之前从table1拿到table2的时候是用convert转化和截取了一次,现在可以改成直接拿过来用的,如下:

然后这个时差的问题就解决了.如下:

@JsonFormat(pattern = "HH:mm", timezone = "GMT+8")
private Date planStartTime; //工单计划生产时间 @JsonFormat(pattern = "HH:mm", timezone = "GMT+8")
private Date planEndTime; //工单计划结束时间

4.jpg

如果你在开发过程中发现jsonformat注解失效,那就可以参考以上解决方法,这样就能解决jsonformat注解失效的问题啦!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。

推荐阅读:

fastjson在哪发布版本?fastjson库的3个常用类有哪些?

json怎么导入?json注意事项有哪些?

java返回值怎么用?return返回值如何应用?