jdbc连接mysq之serverTimezone设定

jdbc连接mysq之serverTimezone设定,第1张

mysql返回的时间总是有问题,比实际时间要早8小时。检查是jdbc连接的url中配置的时区有问题,原先是

尝试了GMT、GMT8、UTC+8,UTC0800等可能的参数均报错。后来在mysql文档中发现可用的时区都在/usr/share/zoneinfo目录下,ll下发现可用的时区信息如下

lewis@lewis-dzwww:/usr/share/zoneinfo$ ll

总用量 308

为解决此问题,可以选择东8区的Hongkong、Asia/Shanghai或者Asia/Hongkong作为参数,修改后url为

mysql时区

GMT、UTC、DST、CST时区代表的意义

格林威治标准时间 英国伦敦格林威治定为0°经线开始的地方,地球每15°经度 被分为一个时区,共分为24个时区,相邻时区相差一小时;例: 中国北京位于东八区,GMT时间比北京时间慢8小时。

世界协调时间;经严谨计算得到的时间,精确到秒,误差在0.9s以内, 是比GMT更为精确的世界时间

夏季节约时间,即夏令时;是为了利用夏天充足的光照而将时间调早一个小时,北美、欧洲的许多国家实行夏令时;

四个不同时区的缩写:

参考: https://www.douban.com/note/147740972/

MySQL JDBC 8.0.25版本中的时区处理与之前的版本有所差异。具体来说,这些差异主要涉及以下方面:

1. 时区转换:MySQL JDBC 8.0.25版本默认使用UTC时区进行时间戳的转换。如果需要在应用程序中使用本地时区或其他时区,需要通过设置连接参数或使用JDBC API进行相应的设置。

2. 日期时间类型的处理:MySQL JDBC 8.0.25版本中,日期时间类型的值会被转换为Java8中的日期时间类型(例如java.time.LocalDateTime、java.time.ZonedDateTime等)。这些类型与之前版本中的java.sql.Date和java.sql.Timestamp有所不同,需要注意使用方式和转换规则。

3. 时区信息的获取:MySQL JDBC 8.0.25版本中,可以通过使用JDBC API获取MySQL服务器的时区信息,以便在应用程序中进行时区转换和处理。

需要注意的是,这些差异可能会对已有的应用程序产生影响,需要对应用程序进行相应的修改和适配。同时,在使用MySQL JDBC 8.0.25版本时,需要仔细阅读官方文档,了解其提供的新特性和变化,以便更好地使用和管理MySQL数据库。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11585041.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存