【发布时间】:2020-05-08 15:25:04
【问题描述】:
我正在使用以下 DSN 连接到 mysql 服务器:jdbc:mysql://localhost/my_database?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC。
我遇到的问题是 java.sql.Date 实例正在将时区从我的本地时区转换为 UTC。我的应用程序将日期视为与时区无关,这会导致一些问题。
例如,我在 IST (UTC+05:30) 中,当我在代码中将某个日期字段设置为“2020-01-22”时,它会以“2020-01-21”的形式发送到服务器'。我已经从 mysql 常规日志中验证了这一点。
我尝试了useLegacyDatetimeCode、useTimezone 和noTimezoneConversionForDateType 的几种组合,但到目前为止我一直无法让 mysql 驱动程序跳过日期字段的转换。
如何让 mysql 驱动程序跳过日期和时间字段的转换?
我已经尝试过第 6 版和第 8 版的 Connector/J 驱动程序 mysql:mysql-connector-java:<version>。
另外,我正在使用 JOOQ 并使用一个简单的转换器在 LocalDate 和 java.sql.Date 之间进行转换。
【问题讨论】:
标签: java mysql jooq mysql-connector