时区设置问题

时区设置问题

G:\JDK\jdk_H2J_1.8\bin\java.exe "-javaagent:G:\IDEA2020.2.3\IntelliJ IDEA 2020.2.3\lib\idea_rt.jar=56544:G:\IDEA2020.2.3\IntelliJ IDEA 2020.2.3\bin" -Dfile.encoding=UTF-8 -classpath "G:\JDK\jdk_H2J_1.8\jre\lib\charsets.jar;G:\JDK\jdk_H2J_1.8\jre\lib\deploy.jar;G:\JDK\jdk_H2J_1.8\jre\lib\ext\access-bridge.jar;G:\JDK\jdk_H2J_1.8\jre\lib\ext\cldrdata.jar;G:\JDK\jdk_H2J_1.8\jre\lib\ext\dnsns.jar;G:\JDK\jdk_H2J_1.8\jre\lib\ext\jaccess.jar;G:\JDK\jdk_H2J_1.8\jre\lib\ext\jfxrt.jar;G:\JDK\jdk_H2J_1.8\jre\lib\ext\localedata.jar;G:\JDK\jdk_H2J_1.8\jre\lib\ext\nashorn.jar;G:\JDK\jdk_H2J_1.8\jre\lib\ext\sunec.jar;G:\JDK\jdk_H2J_1.8\jre\lib\ext\sunjce_provider.jar;G:\JDK\jdk_H2J_1.8\jre\lib\ext\sunmscapi.jar;G:\JDK\jdk_H2J_1.8\jre\lib\ext\sunpkcs11.jar;G:\JDK\jdk_H2J_1.8\jre\lib\ext\zipfs.jar;G:\JDK\jdk_H2J_1.8\jre\lib\javaws.jar;G:\JDK\jdk_H2J_1.8\jre\lib\jce.jar;G:\JDK\jdk_H2J_1.8\jre\lib\jfr.jar;G:\JDK\jdk_H2J_1.8\jre\lib\jfxswt.jar;G:\JDK\jdk_H2J_1.8\jre\lib\jsse.jar;G:\JDK\jdk_H2J_1.8\jre\lib\management-agent.jar;G:\JDK\jdk_H2J_1.8\jre\lib\plugin.jar;G:\JDK\jdk_H2J_1.8\jre\lib\resources.jar;G:\JDK\jdk_H2J_1.8\jre\lib\rt.jar;G:\Java Project\IMMOC_Practice\ricardo\JDBCDemo1\out\production\JDBCDemo1;G:\Java Project\IMMOC_Practice\ricardo\JDBCDemo1\src\lib\mysql-connector-java-8.0.16.jar" com.imooc.jdbc.sample.StandardJDBCSample
java.sql.SQLException: No timezone mapping entry for 'Asin/Shanghai'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:85)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at com.imooc.jdbc.sample.StandardJDBCSample.main(StandardJDBCSample.java:16)
Caused by: com.mysql.cj.exceptions.WrongArgumentException: No timezone mapping entry for 'Asin/Shanghai'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:85)
at com.mysql.cj.protocol.a.NativeProtocol.configureTimezone(NativeProtocol.java:2132)
at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2142)
at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1310)
at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:967)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:826)
... 6 more

Process finished with exit code 0

问下,这个时区设置错误怎么解决?我按照老师的写了url(

"jdbc:mysql://localhost:3306/immoc?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asin/Shanghai"

)之后,报错信息变成了没有Shanghai这个时区

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

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

1回答
好帮手慕阿莹 2020-12-31 10:31:20

同学你好,

可能数据库版本不同,会有一些区别,

请同学试一下这个  serverTimezone=GMT%2B8 :  这个的意思格林威治时间+8个小时,也就是北京时间

"jdbc:mysql://localhost:3306/immoc?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8 "


祝学习愉快。

  • 提问者 Ricardo慕 #1
    我昨天用UTC可以了,平时使用的时候也经常碰到这个问题,但是一直不太清楚在哪里看这个时区设置。怎么和数据库里的时区对应上不清楚,每次都是瞎试,失败了就换一个。所以老师知道哪里看自己的数据库的时区吗
    2020-12-31 10:37:02
  • 好帮手慕阿莹 回复 提问者 Ricardo慕 #2

    同学你好,很抱歉,老师也不知道如何查看数据库的时区,但一般统一使用GMT%2B8  就可以了哦。祝学习愉快。

    2020-12-31 10:41:44
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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