保存时间数据到mysql相差8小时的问题

关于serverTimezone的设置GMT与UTC---保存数据到mysql相差8小时问题JDBC驱动的版本

//这是我的日期格式
Date date=new Date(System.currentTimeMillis());                                                         //获取当前时间并实例化
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   //定义时间格式并初始化
System.out.println(sdf.format(date));

今天保存时间数据到数据库,一直发现有问题,和现实中的时间总是相差8个小时,我最开始的url中的serverTimezone=UTC,数据库中的time格式为datetime。后面在网上搜集了一些资料,解决办法如下:

UTC和GMT:

UTC代表的是全球标准时间,是以原子时计时,更加精准,适应现代社会的精确计时。
GMT格林威治标准时间,是指位于伦敦郊区的皇家格林尼治天文台的标准时间。
serverTimezone=GMT 这个他表示12小时制,如果serverTimezone=GMT%2B8表示24小时制,默认不写serverTimezone的话是24小时制,高版本的mysql需要指定时间格式。
但是我们使用的时间是北京时区也就是东八区,领先UTC和GMT八个小时。
一般视为无差别,即:北京时间=UTC+8=GMT+8。

JDBC驱动的版本号:

com.mysql.jdbc.Driver 是 mysql-connector-java 5中的

com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6以上的版本中的(我就是这个)

使用com.mysql.cj.jdbc.Driver驱动不配置时区会报错的。

解决相差8小时问题关于jdbc时区的配置:

serverTimezone=Asia/Shanghai

serverTimezone=GMT%2B8

写在最后:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!

谢谢浏览!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值