java jdbc mysql 8驱动,连接数据库 mysql serverTimezone 问题,时间少了8小时

如果你发现时间正好少了8小时,不用问,肯定是时区设置有问题,找找在哪里设置下时区就好了。

遇到一个问题:Mysql驱动从5升级到8后,数据库链接配置了serverTimezone=UTC,导致数据库时间和Java时间相差8小时。

解决如下:

如果你设置serverTimezone=UTC,连接不报错,

但是我们在用java代码插入到数据库时间的时候却出现了问题。

比如在java代码里面插入的时间为:2018-06-24 17:29:56

但是在数据库里面显示的时间却为:2018-06-24 09:29:56

有了8个小时的时差

UTC代表的是全球标准时间 ,但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时。

//北京时间==东八区时间!=北京当地时间

serverTimezone=GMT%2B8

//或者使用上海时间

serverTimezone=Asia/Shanghai

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是用 Java 代码连接 MySQL 数据库的示例: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class JDBCExample { public static void main(String[] args) { // 设置数据库驱动名 String driverName = "com.mysql.cj.jdbc.Driver"; // 设置数据库连接的地址 String url = "jdbc:mysql://localhost:3306/mydatabase?serverTimezone=UTC"; // 设置数据库的用户名 String userName = "root"; // 设置数据库的密码 String password = "123456"; // 声明一个数据库连接的变量 Connection conn = null; try { // 注册 MySQL数据库驱动 Class.forName(driverName); // 获取数据库连接 conn = DriverManager.getConnection(url, userName, password); // 输出连接成功的提示信息 System.out.println("数据库连接成功!"); } catch (ClassNotFoundException e) { // 输出无法找到数据库驱动的异常信息 System.out.println("无法找到数据库驱动:" + e.getMessage()); } catch (SQLException e) { // 输出数据库连接错误信息 System.out.println("无法连接数据库:" + e.getMessage()); } finally { // 在 finally 代码块中关闭数据库连接 try { if (conn != null) { conn.close(); System.out.println("数据库连接已关闭!"); } } catch (SQLException e) { System.out.println("关闭数据库连接失败:" + e.getMessage()); } } } } ``` 注意,上述代码需要根据自己的数据库配置做一定的修改,比如数据库的名称、用户名、密码等。另外,这里使用了 try-catch-finally 结构来处理可能出现的异常,以确保程序的健壮性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值