赞
踩
###JAVA
com.mysql.cj.jdbc.Driver
jdbc:mysql://127.0.0.1:3006/db?useUnicode=true&characterEncoding=UTF8&useLegacyDatetimeCode=false&serverTimezone=UTC
show global variables like “%time_zone%”;
驱动 com.mysql.cj.jdbc.Driver
Java通过MySQL的jdbc驱动连接MySQL服务端:
1.通过jdbc的serverTimezone参数设置数据库连接的时区。
2.当未设置serverTimezone时,数据库将连接使用MySQL服务端的time_zone。
MySQL的 system_time_zone 变量显示的是MySQL服务器启动时从操作系统获取的时区。这是服务器操作系统的当前时区,不是MySQL的当前时区。
MySQL的 time_zone 变量则是MySQL服务器当前正在使用的时区。默认情况下,这个值是’SYSTEM’,意味着MySQL将使用操作系统的时区。
在JDBC连接字符串中设置了serverTimezone=UTC+8,Java应用程序将使用UTC+8时区与MySQL数据库交互。也就是说当应用程序将日期和时间发送到数据库时,它们将被视为UTC+8时区的时间。同样,从数据库检索的日期和时间也将被转换为UTC+8时区。
因此,要确保Java应用程序(通过JDBC连接字符串设置的serverTimezone)和你的MySQL数据库(通过time_zone设置的)使用的是相同的时区,以避免日期和时间的混淆。
应用程序在北京时间下午3点(UTC)向Mysql数据库插入一个Timestamp,那么这个Timestamp将被视为下午3点的UTC时间。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。