util.Date类型数据插入mysql数据库时,日期总会少一天,16个小时

插入数据库前的数据和取出来后的数据


这是简单的代码


检查了数据库,生日的类型是date


检查了数据库时区的配置,原先是System,我改为了北京时区,都是不行,

再检查了eclipse的时区配置,也是没问题


show variables like "%time_zone%";
set global time_zone = '+8:00';
set global time_zone = '+8:00'; ##修改mysql全局时区为北京时间,即我们所在的东8区
set time_zone = '+8:00'; ##修改当前会话时区
flush privileges; #立即生效

百度了之后,发现有提到可能是驱动的问题,就检查了下驱动信息,果然发现连接参数中的字段serverTimezone设置为UTC,检查之后改为HongKong 或者 Asia/Shanghai就可以了

jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai


你可能感兴趣的:(java)