在遇到时间字段新增数据库时,总会有发生后台生成的时间与数据库新增后的时间不一致,解决的方式网上有很多种,但是有的方法用上不奏效,这很显然治标不治本,这时你要了解这些方法的作用范围了,下面我仅举例俩种解决方案,也是我常用的
1、使用jackson中的
JsonFormat
注解来解决时间格式问题:
这种方法的作用范围在后台将时间作为json数据进行传输时,类似这样的方法有很多,就不都一一例举了;当java.util.Date生成时间时,它是根据当前的默认毫秒值创建日期对象,有关jsonformat介绍(
https://blog.csdn.net/qq_28483283/article/details/81326365
)
2、添加
serverTimezone
属性连接数据库:
这种方法的作用范围在时间参数从后台传输到数据库时,有关serverTimezone属性的介绍链接:
https://blog.csdn.net/love20yh/article/details/80799610
;此属性对新版和旧版的驱动类都支持
情况一、未使用JsonFormat注解和serverTimezone属性
时:
json数据中的时间:
新增到数据库的时间:
当前系统时间:
情况二、仅使用JsonFormat注解时:
json数据中的时间:
新增到数据库的时间:
当前系统时间:
情况三、仅使用serverTimezone属性时:
json数据中的时间:
新增到数据库的时间:
当前系统时间:
情况四、使用JsonFormat注解和serverTimezone属性
时:
json数据中的时间:
新增到数据库的时间:
当前系统时间:
结语:
很明显,在数据库这块,serverTimezone属性有着巨大的作用;而在json格式这块,JsonFormat注解起着巨大作用;虽说情况三和情况四最终的结果是统一的,但是为了防止项目中比如需要用到展示json数据中的日期这种情况,所以还是习惯性的把serverTimezone属性和JsonFormat注解都加上为好。这次分享就到这里,欢迎指正错误,评论区欢迎交流讨论,谢谢观赏。