mysql传入的日期存在时差

前言

  • 对象中获取到的系统时间和更新到MySQL后的时间存在时差


一、 问题:公司自带的框架在更新表时会更新对象中的更新时间字段,更新到mysql后发现两者存在8小时时差

  • 第一时间就想到的是MySQL系统默认是UTC的时间

  • MySQL会对传入的时间类型做本地化时差处理

  • 所以这里只需要改变数据库驱动连接时的设置即可

二、 解决:JDBC连接时设置url的时区使用中国标准时间

  1. 使用北京时间东八区
    • serverTimezone=GMT%2B8
  2. 或者使用上海时间
    • serverTimezone=Asia/Shanghai
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/myDB?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=123456

我这里使用的第二种时区设置,完美解决!!

posted @ 2021-05-12 17:46  中国制造  阅读(7)  评论(0编辑  收藏  举报