jsonformat注解失效如何解决?详细解决方法

JsonFormat注解是一个时间格式化注解,比如我们存储在mysql中的数据是date类型的,当我们读取出来封装在实体类中的时候,就会变成英文时间格式,因此我们需要将这类问题解决,那么今天我们就给大家讲解一下jsonformat注解失效的问题。

具体场景:

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

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

jsonformat注解失效如何解决?详细解决方法.png

现在我需要从这张表中取出来年插入另一张临时表table2中,注意就是这里出的错,因为我当时想只需要hh:mm所以我就直接用截取字符串的形式取值的,如下:

1.png

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

2.png

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

3.png

解决方案:

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

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

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

在开发过程中,如果我们发现jsonformat注解失效就可以利用以上的方法去解决。最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。

推荐阅读:

json有几种数据格式?支持哪些数据类型?

java架构师面试技术规范有哪些?java架构师面试题分享

java泛型方法怎么用?用泛型有什么意义?