Java SQL 日期偏差 1 天

Teh*_*ish 5 java mysql sql date

我正在使用与我位于同一时区的 MySQL 服务器。DATE我尝试使用以下代码将 java.util.Date 插入数据库的类型列:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+2")); Date date = dateFormat.parse(map.value("date"));

插入“日期”的地方。问题是,在数据库中查找时,日期晚了一天。示例:我插入2020-05-02,数据库显示2020-05-01。这带来了一个问题,当我想要获取日期为 2020-05-02 的匹配项时,我必须提前 1 天进行搜索,但我不想这样做。此外,这种情况发生在一天的特定时间之间,所以我假设它是时区问题,但我不知道如何解决它!

尖端?

Teh*_*ish 7

这个问题来自于java中的MySQL Connector。版本 8.0.19 使用 JVM 时区转换日期,这会导致 1 天休息问题。这个问题在 8.0.20 补丁中得到了解决。阅读此处https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/