首页 > 其他 > 详细

MyBatis中LocalDate时差的坑

时间:2020-01-14 15:43:47      阅读:537      评论:0      收藏:0      [点我收藏+]

问题定位

  在使用mybatis进行数据查询时,使用到LocalDate作为参数(2018-06-18),结果查出来的数据早了一天(2018-06-17),猜测是日期的时差问题,

具体打印出一个包含时间的字段,发现,查出来的时间比数据库中的时间晚了14小时。然后网上搜索,找到了说法(参考文章【1】):

  LocalDate为本地时区,数据库使用的时区是CST,参考文章【2】,CST应该表示 Central Standard Time (USA) UTC-6:00

与中国时区+8 正好差了14h

经过本地验证,确是如此,我的数据库使用的time_zone也为CST。

解决方案

  参考文章【1】的解决方案是修改数据库时区为中国+8时区,但是我自己这边的数据库是个老数据库,不想改动那么大,

最终参考了文章【3】的方法:修改数据库连接中的时区参数:

  使用上海时间:serverTimezone=Asia/Shanghai

  或者

  使用北京时间:serverTimezone=GMT%2B8

技术分享图片

 

 

 

参考文章:

【1】mybatis查询mysql的datetime类型数据时间差了14小时(时区问题)

【2】时区缩写 UTC, CST, GMT, CEST 以及转换

【3】mysql url 中时区问题

MyBatis中LocalDate时差的坑

原文:https://www.cnblogs.com/tlz888/p/12191764.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!