JsonFormat注解是一个时间格式化注解,比如我们存储在mysql中的数据是date类型的,当我们读取出来封装在实体类中的时候,就会变成英文时间格式,但是也不排除jsonformat注解失效的情况,下面我们就给大家讲解一下sonformat注解失效及解决方法。
场景:
在使用springboot的框架下,可以利用@jsonFormat作为注解来消除时差.但是在使用的过程中发现有一种情况下这个注解会失效.
在数据库第一张表table1中我只需要存入小时和秒,而且作比较的时候也是只用来比较小时和秒,于是在insert进去之后,sql server数据库自动的补充上了年,也就是数据库的初始时间的年,如下:
现在我需要从这张表中取出来年插入另一张临时表table2中,
注意就是这里出的错,因为我当时想只需要hh:mm所以我就直接用截取字符串的形式取值的,如下:
之后我的临时表中的数据默认在数据库中是
然后我在查询table2并显示的时候发现用@JsonFormat注解发现了失效的情况.并且只有在超过12点之后就会有误差,如下:
解决方案:
修改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注解失效,那就可以参考以上解决方法,这样就能解决jsonformat注解失效的问题啦!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。
推荐阅读: