最近遇到一个问题,就是在代码里order.setCreateDate(new Date())后,将此作为参数传入到mybatis的时候,插入到数据库的时间比当前时间晚了11个小时,服务和数据库是在两台不同的服务器上,但是两个的时间都是同一时间。
解决方案:
第一步:直接在插入mybatis时候,sql语句用now()函数作为当前时间。最好不要用new Date().以为两台代码部署服务器和数据库服务器时间可能不一致。
第二步:在数据库配置文件的url : jdbc:mysql://www/order?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=Asia/Shanghai。注意后面加上serverTimezone=Asia/Shanghai就可以解决这个问题了