-
java连接mysql时区修改_如何在java连接中更改mysql时区
2021-01-18 20:09:50MySQL团队最近重写了setTimestamp / getTimestamp代码,但只有在连接参数useLegacyDatetimeCode = false并且使用最新版本的mysql JDBC连接器时,才会启用它。所以例如:String url ="jdbc:mysql://localhost/mydb?...useTimezone是较旧的解决方法。 MySQL团队最近重写了setTimestamp / getTimestamp代码,但只有在连接参数useLegacyDatetimeCode = false并且使用最新版本的mysql JDBC连接器时,才会启用它。所以例如:
String url =
"jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false
如果您下载mysql-connector源代码并查看setTimestamp,那么很容易看到发生了什么:
如果使用legacy date time code = false,则调用newSetTimestampInternal(…)。然后,如果传递给newSetTimestampInternal的日历为NULL,则日期对象将在数据库的时区中格式化:
this.tsdf = new SimpleDateFormat("''yyyy-MM-dd HH:mm:ss", Locale.US);
this.tsdf.setTimeZone(this.connection.getServerTimezoneTZ());
timestampString = this.tsdf.format(x);
这是非常重要的日历是空的 – 所以请确保你使用:
setTimestamp(int,Timestamp).
… NOT setTimestamp(int,Timestamp,Calendar)。
现在应该明白这是如何工作的。如果您建立日期:2011年1月5日上午3:00在美国/ Los_Angeles(或任何你想要的时区)使用java.util.Calendar并调用setTimestamp(1,myDate),那么它将占用你的日期,使用SimpleDateFormat在数据库时区格式化它。所以如果你的数据库在美国/纽约州,那么它将构造要插入的字符串’2011-01-05 6:00:00′(因为纽约在3小时之前是洛杉矶)。
要检索日期,请使用getTimestamp(int)(不含Calendar)。再次使用数据库时区来建立日期。
注意:网络服务器时区现在完全不相关了!如果不将useLegacyDatetimecode设置为false,则Web服务器时区用于格式化 – 增加了许多混乱。
注意:
这可能是MySQL我抱怨服务器时区是不明确的。例如,如果您的数据库设置为使用EST,Java中可能会有几个可能的EST时区,因此您可以通过详细说明数据库时区是什么来澄清这一点:
String url =
"jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false&serverTimezone=America/New_York";
你只需要这样做,如果它抱怨。
-
java连接mysql时区修改_如何使用Java更改数据库连接中的MySQL时区?
2021-01-18 20:09:49MySQL团队最近重写了setTimestamp / getTimestamp代码,但只有在设置连接参数useLegacyDatetimeCode = false并且使用最新版本的mysql JDBC连接器时才会启用它.例如:String url ="jdbc:mysql://localhost/mydb?...useTimezone是一种较旧的解决方法. MySQL团队最近重写了setTimestamp / getTimestamp代码,但只有在设置连接参数useLegacyDatetimeCode = false并且使用最新版本的mysql JDBC连接器时才会启用它.例如:
String url =
"jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false
如果你下载mysql-connector源代码并查看setTimestamp,很容易看出发生了什么:
如果使用旧日期时间代码= false,则调用newSetTimestampInternal(…).然后,如果传递给newSetTimestampInternal的Calendar为NULL,则日期对象的格式为数据库的时区:
this.tsdf = new SimpleDateFormat("''yyyy-MM-dd HH:mm:ss", Locale.US);
this.tsdf.setTimeZone(this.connection.getServerTimezoneTZ());
timestampString = this.tsdf.format(x);
Calendar是空的非常重要 – 所以请确保您正在使用:
setTimestamp(int,Timestamp).
…不是setTimestamp(int,Timestamp,Calendar).
现在应该很明显这是如何工作的.如果您使用java.util.Calendar构建日期:2011年1月5日凌晨3:00在America / Los_Angeles(或您想要的任何时区)并调用setTimestamp(1,myDate),那么它将占用您的日期,使用SimpleDateFormat在数据库时区中格式化它.因此,如果您的数据库位于America / New_York,它将构造要插入的字符串’2011-01-05 6:00:00′(因为纽约比洛杉矶提前3小时).
要检索日期,请使用getTimestamp(int)(不使用Calendar).它将再次使用数据库时区来构建日期.
注意:网络服务器时区现在完全不相关!如果未将useLegacyDatetimecode设置为false,则使用Web服务器时区进行格式化 – 增加了许多混淆.
注意:
MySQL我可能会抱怨服务器时区不明确.例如,如果您的数据库设置为使用EST,则Java中可能存在多个可能的EST时区,因此您可以通过告知它确切的数据库时区来澄清这个问题:
String url =
"jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false&serverTimezone=America/New_York";
如果它抱怨,你只需要这样做.
-
Hibernate-SpringBoot:收集Spring Boot应用程序中的Java持久性性能的最佳实践-源码
2021-01-30 03:12:51第二个设置useLegacyDatetimeCode仅对于MySQL是必需的。 否则,仅设置hibernate.jdbc.time_zone 。 关键点: spring.jpa.properties.hibernate.jdbc.time_zone=UTC spring.datasource.url=jdbc:mysql://... -
mysql时区问题-服务器与数据库不同时区
2019-12-10 20:06:30jdbc增加 &useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTCjdbc增加
&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
Mysql与tomcat时区不一致。
我尝试设置连接url add
useTimezone = true& serverTimezone = GMT
但不起作用
解决方案
useTimezone是一种较旧的解决方法。
MySQL团队最近重写了setTimestamp / getTimestamp代码,但只有在设置连接参数useLegacyDatetimeCode = false并且使用最新版本的mysql JDBC连接器时才会启用它。例如:
useLegacyDatetimeCode = false如果你下载mysql-connector源代码并查看setTimestamp,很容易看出发生了什么:
如果使用旧日期时间代码= false,则调用newSetTimestampInternal(…)。然后,如果传递给newSetTimestampInternal的Calendar为NULL,则日期对象的格式为数据库的时区:
this.tsdf = new SimpleDateFormat(’'yyyy-MM-dd HH:mm:ss” ,Locale.US);
this.tsdf.setTimeZone(this.connection.getServerTimezoneTZ());
timestampString = this.tsdf.format(x);日历为空是非常重要的 - 所以请确保你正在使用:
setTimestamp(int,Timestamp)。
…不是setTimestamp (int,Timestamp,Calendar)。
要检索日期,请使用getTimestamp(int)(不使用Calendar)。它将再次使用数据库时区来构建日期。
注意:现在,网络服务器时区完全不相关!如果你不喜欢将useLegacyDatetimecode设置为false,网络服务器时区用于格式化 - 增加了许多混淆。
参考:http://www.it1352.com/958391.html -
关于连接数据库时HikariPool-1 - Exception during pool initialization.报错
2021-04-14 17:26:01在url后+?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC在url后+?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
-
mycat分片数据存储到同一节点
2021-01-20 12:16:12记录2个问题, 1.mycat分片后,分表的数据如何...useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&characterEncoding=UTF-8 spring.datasource.username=test sp -
mysql时区问题
2020-05-08 21:01:04spring.datasource.url=jdbc:mysql:///mybatis?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC -
The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one ...
2019-01-09 22:24:51解决方案 直接在url后面加上&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC -
idea连接MySQL数据库
2020-06-08 15:05:18idea连接MySQL数据库 在URL加上后缀: ?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC -
IDEA连接数据库失败
2021-03-28 11:46:38在URL加入下列 jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC -
mysql数据库插入时间和系统时间相差8个小时
2018-09-05 17:00:52解决办法: 在jdbc的url中加入 &useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC -
机场服务-源码
2021-02-14 18:28:14useUnicode=yes&characterEncoding=UTF-8&useLegacyDatetimeCode=false spring.datasource.username=username spring.datasource.password=password 跑 有几种方法可以在本地机器上运行Spring Boot应用程序。 一种... -
mysql 连接报错
2020-04-06 15:42:35在后面添加上characterEncoding=utf8&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8 -
pycharm 连接数据库
2019-09-25 01:31:20jdbc:mysql://localhost:3306/databasename?useUnicode=true&characterEncoding=UTF8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTim... -
设置springmvc返回时区少8小时问题
2018-01-05 10:08:45application/json;charset=UTF-8 text/plain;charset=UTF-8 NON_NULL ...数据库链接地址加 useLegacyDatetimeCode=false&se -
ERROR 22472 --- [reate-267533031] com.alibaba.druid.pool.DruidDataSource : create connection
2020-07-01 20:28:20可能是url的问题我换了url就ok了 url: jdbc:mysql://localhost:3306/bootvue?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC -
连接mysql数据库报错java.sql.SQLException: The server time zone value '�й���ʱ��' is ...
2019-08-07 14:12:04需在配置文件中的url后面追加 (characterEncoding=UTF-8&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC) -
spring boot连接数据库
2019-12-14 17:02:00applicat.yml spring: datasource: username: root password: url: jdbc:mysql://localhost:3306/test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&... -
com.mysql.cj.core.exceptions.InvalidConnectionAttributeException: The server time zone value '�й�...
2016-10-17 13:30:15解决方案: 为URL添加参数:jdbc:mysql://localhost:3306/sys?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC -
IDEA连接MYSQL数据库报JAVA.LANG.RUNTIMEEXCEPTION: ...
2019-10-08 09:30:23加一句 jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC -
sprigboot整合Mybatis
2019-08-17 21:36:15步骤: 1.配置数据源 spring: datasource: username: root password: 151630 url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&useJDBCCompliantTimezoneShift=true&...useLegacyDatetimeCode=... -
SpringBoot之musql数据库编码
2019-11-06 13:45:40applation.properties # mysql 数据库 spring.datasource.url=jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=...useLegacyDatetimeCode=f... -
mysql 无法逆向工程_使用mysql驱动包8.0版本逆向工程时踩的坑
2021-01-19 14:37:55driverClass=...useLegacyDatetimeCode=false&serverTimezone=UTC"userId="root"password="... -
idea中配置数据库错误-超时
2020-01-03 13:01:57文章目录解决办法 解决办法 jdbc:mysql://localhost:3306/gmall?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&...useLegacyDatetimeCode=false&serverTimezone=UTC ... -
Niagara如何连接连接数据库
2019-12-24 15:38:46url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&...useLegacyDatetimeCode=false&serverTimezone=UTC&allowPublicKeyRetrie... -
SpringBoots连接数据库报错Could not create connection to database server. Attempted reconnect 3 times...
2020-04-04 09:27:07解决方法 jdbcUrl换成这个 jdbc:mysql://localhost:3306/goods?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&...useLegacyDatetimeCode=false&serverTimezone=UTC ... -
MySQL时间偏移量_在MySQL和String中转换的日期对象有一秒的偏移量
2021-03-16 12:37:43我在AWS'Aurora上使用hibernate和spring和数据源:url:jdbc:mysql://test-cluster.xxxxxxx.us-west-2.rds.amazonaws.com:3306 / db_example?useLegacyDatetimeCode = false转换时区@RestControllerpublic class... -
com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'xxx'
2019-12-03 20:36:26spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&...useLegacyDatetimeCode=false&serverTimezone=UTC ... -
com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
2021-04-12 11:45:49CommunicationsException, druid version 1.1.10, jdbcUrl : ...useLegacyDatetimeCode=false&characterEncoding=UTF-8&useSSL=false, testWhileIdle true, idle millis 9947, minIdle 0, poolingCount 0, . -
mysql 数据库url
2019-10-02 08:02:00jdbc:mysql://localhost:3306/database?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=PRC&characterEncoding=UTF8 转载于:https://w...