Java springboot 插入数据库时间不是北京时间,为标准时间

当设置数据库连接为serverTimezone=UTC时,插入数据库的时间为世界标准时间。


image.png

首先,介绍一下什么是UTC,UTC,简称世界统一时间,跟北京时间相比,比北京早8个小时,也就是说,北京2020年3月20日18点的时候,UTC时间为2020年3月20日10点。

如果你用编译器连接数据库,定义了serverTimezone=UTC,那么在你编译器上执行的SQL语句,会先以UTC时区进行存储,发送到MySQL,然后MySQL以本地时区进行转换,就会导致,执行时间比从编译器上的执行时间早8个小时,导致,同一段SQL语句,在mysql直接执行,与编译器执行,结果不同,因为时间相差8个小时。

解决方式
将属性设置为
serverTimezone=Asia/Shanghai

你可能感兴趣的:(Java springboot 插入数据库时间不是北京时间,为标准时间)