今天在开发的时候遇到了一个问题,就是在构造updateTime这个字段的时候把new Date()
传进去,对应的DO字段也有用@TableField
注明对应字段,但是在传进去后发现比现在的时间少了8个小时。第一眼就能看出是时区问题,不过之前在传时间进去的时候,也从没在new Date()
或者在@TableField
上注明时区啊。查找了一下,发现原来是配置文件中的mysql数据源那里的时区标注为UTC,也就是世界时区,正好和北京时间差了8小时。
问题找到了,将数据源时区部分改为北京时间即可,如
serverTimezone=Asia/Shanghai