问题发生:
插入日期比预想的少了一天,查看java 中执行的sql
INSERT INTO t3b_msg (send_dt) values(str_to_date(' - 10 - 18','%Y-%m-%d'));
但是到了数据库时间就变成 -10-17了
解决:
经百度发现
自己mysql驱动配置时区问题
自己mysql配置
jdbc.url=jdbc:mysql://10.16.93.62:3306/aml?useUnicode=true&autoReconnect=true&allowMultiQueries=true&useSSL=false
数据库驱动使用的版本是
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.15</version></dependency>
少了一个参数时区的设置即
serverTimezone=Asia/Shanghai
如果设定为serverTimezone=UTC
,会比中国时间早8个小时
所以修改后的url为
jdbc.url=jdbc:mysql://10.16.93.62:3306/aml?useUnicode=true&autoReconnect=true&allowMultiQueries=true&useSSL=false&serverTimezone=Asia/Shanghai
问题完美解决
附带: mysql url 重要参数说明
更多参数请看这里
或者这里
如果觉得《java 日期类Date插入mysql数据库时间总是比参数时间少一天》对你有帮助,请点赞、收藏,并留下你的观点哦!