![acff722f7373d67fcb9cccc782be6128.png](https://img-blog.csdnimg.cn/img_convert/acff722f7373d67fcb9cccc782be6128.png)
最近开发的java服务端程序,编写有一个定时回收任务,正常情况应该是启动实验一小时后,用户未进行延时操作,定时任务会回收掉此实验,结果每次都是刚启动任务,没过几分钟就被莫名其妙的回收了,算算时间刚好是一般刚好是一个定时回收周期内,怎么回事那? 就查看了下数据库表的数据,结果发现尴尬的事情出现了,新插入的时间竟然是昨天,大概估算了下和当前时间差14个小时,我晕,什么情况,差8个小时的见多了,差14个小时的第一次见,百度、google之,得知:
在解析成预编译语句的时候,误将CST(China Standard Time utc+8)解析成CST(Central Standard Tim UTC-6),美国中部标准时间,所以少14个小时
解决方法:
在数据库连接中,增加serverTimezone参数配置,如果你得参数serverTimezone写错了,写为了serverTimeZone这样,也是不行的,(鬼知道,为啥不按驼峰规则写)。
spring.datasource.url=jdbc:mysql://xx.xx.xx.xx:3306/xxxxx?useUnicode=true&characterEncoding=utf-8&serverTimezone=Hongkong