最近,笔者在做项目的时候,发现了一件特别奇怪的事情。

Mysql数据库里

1552978256715


数据如下:

1552978448451


可是,使用Mybatis查询出来的数据却是

1552978430964

查出来的数据跟数据库里的数据相差了8个小时,这是为什么呢?

这是因为Mysql 使用系统默认时区,东八区。

1552978601190

而Tomcat java使用UTC时区进行处理业务逻辑。

System.out.println(System.getProperty("user.timezone")); 

//输出 Asia/Shanghai

时区的不同,从而导致Mysql数据库中datetime类型的值查询后转到Java Bean,值多了8个小时。


解决方法

在url后面添加 serverTimezone=Asia/Shanghai

jdbc:mysql://localhost:3306/dcoj?serverTimezone=Asia/Shanghai
Logo

更多推荐