不修改数据库设置
不修改Jdbc连接数据库设置。
注意:我的例子当中时间精确到天即可,只要天数正确就算正常,其他情况未测试。
1.查看数据库时间是否正确。
select now();
2.查看mysql系统时区。
show variables like '%time_zone%';
3.将Java代码的Date时区设置为默认数据库时区。
function:将一个(“yyyy-MM-dd”)日期字符串转换为Java.util.Date()类型。
public Date strToDate(String strDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
ParsePosition pos = new ParsePosition(0);
formatter.setTimeZone(TimeZone.getTimeZone("CST"));/*我的数据库默认是CST时区*/
Date date = formatter.parse(strDate, pos);
return date ;
}
4.用mybatis逆向工程从数据库查询的timestamp时间相差13小时
前置条件
从timestamp转换为JavaDate相差13个小时。
将数据库url添加 serverTimezone=Asia/Shanghai