服务器时区值异常

服务器时区值异常

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.junit.Test;

import com.mysql.cj.jdbc.Driver;

public class JDBCDemo1 {
	@Test
	public void demo1() {
		try {
			DriverManager.registerDriver(new Driver());
			Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbctest", "root", "4200");
			String sql="SELECT* FROM user";
			Statement stmt=conn.createStatement();
			ResultSet resultSet=stmt.executeQuery(sql);

			while(resultSet.next()) {
				int uid=resultSet.getInt("uid");
				String username=resultSet.getString("username");
				String password=resultSet.getString("password");
				String name=resultSet.getString("name");
				System.out.println(uid+"  "+username+"  "+password+"  "+name);
			}
			resultSet.close();
			stmt.close();
			conn.close();
			
			
		} catch (SQLException e) {

			e.printStackTrace();
		}
	}

}

如下图,服务器时区异常怎么处理?

http://img1.sycdn.imooc.com//climg/5d88811209e55c5b13870921.jpg

http://img1.sycdn.imooc.com//climg/5d88813709b11f7709850509.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕柯南 2019-09-23 16:35:01

同学你好!

可以在连接地址后面指定一下时区:

?useSSL=false&serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf-8

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • Mr__Gao #1
    老师,这个失去的设定意思是什么
    2019-09-29 16:00:44
  • 同学,指定当前数据库采用哪个时区的时间。祝学习愉快~
    2019-09-29 16:47:29
  • 芝芝兰兰 回复 Mr__Gao #3
    同学你好。是指将代码改为:Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbctest?useSSL=false&serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf-8", "root", "4200");呢,serverTimezone是指Mysql服务的运行时区,和时间相关。mysql8以上的版本没有设置时区有可能会报错呢~“serverTimezone=Hongkong”代表采用香港时区,大部分中国的用户都可以使用。如果同学所在地区不能使用香港时区,可以换成“serverTimezone=UTC”试试~祝学习愉快~
    2019-09-29 16:49:05
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师