保存时间数据到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
    评论
你可以使用 Java保存数据MySQL 数据库。下面是一种常用的方法: 首先,确保你已经安装并配置好了 MySQL 数据库,并且在 Java 项目中引入了 MySQL 的驱动程序。 然后,你需要创建一个数据库连接。你可以使用以下代码来实现: ```java import java.sql.*; public class Main { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/your_database_name"; String username = "your_username"; String password = "your_password"; try { Connection connection = DriverManager.getConnection(url, username, password); System.out.println("成功连接到数据库!"); // 在这里执行插入数据的操作 connection.close(); } catch (SQLException e) { System.out.println("连接数据库失败!"); e.printStackTrace(); } } } ``` 上述代码中,你需要将 `your_database_name` 替换为你要连接的数据库名称,`your_username` 替换为你的数据库用户名,`your_password` 替换为你的数据库密码。 在连接成功后,你可以执行插入数据的操作。例如,插入一条数据到名为 `users` 的表中: ```java String sql = "INSERT INTO users (name, age) VALUES (?, ?)"; try { PreparedStatement statement = connection.prepareStatement(sql); statement.setString(1, "John"); statement.setInt(2, 25); int rowsInserted = statement.executeUpdate(); if (rowsInserted > 0) { System.out.println("插入数据成功!"); } } catch (SQLException e) { System.out.println("插入数据失败!"); e.printStackTrace(); } ``` 上述代码中,你需要将 `users` 替换为你要插入数据的表名称,`name` 和 `age` 替换为你的表中的字段名。 通过上述步骤,你就可以使用 Java数据保存MySQL 数据库了。记得在完成操作后关闭数据库连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值