如何防止Mysql Connector/J转换DATE和TIME时区?

2023-12-02

我正在使用以下 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 and noTimezoneConversionForDateType但到目前为止我还无法让 mysql 驱动程序跳过日期字段的转换。

如何让 mysql 驱动程序跳过日期和时间字段的转换?

我已经尝试过 Connector/J 驱动程序的版本 6 和 8mysql:mysql-connector-java:<version>。 另外,我正在使用 JOOQ 并使用一个简单的转换器在之间进行转换LocalDate and java.sql.Date.


我自己也遇到了同样的问题,现在我用这个转换器解决了它:

public final class DateConverter implements Converter<Date, LocalDate> {
    @Override
    public final LocalDate from(final Date value) {
        if(null == value) {
            return null;
        } else {
            return value.toLocalDate();
        }
    }

    @Override
    public final Date to(final LocalDate value) {
        if(null == value) {
            return null;
        } else {
            return new Date(value.atStartOfDay(ZoneOffset.UTC).toInstant().toEpochMilli());
        }
    }

    @Override
    public final Class<Date> fromType() {
        return Date.class;
    }

    @Override
    public final Class<LocalDate> toType() {
        return LocalDate.class;
    }
}

我必须承认,如果这个转换器与不同的时区一起使用,我还没有考虑过这种行为......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止Mysql Connector/J转换DATE和TIME时区? 的相关文章

随机推荐

  • 使用 PHP 和正则表达式自定义 URL 路由

    我正在尝试创建一个非常简单的 URL 路由 我的思考过程是这样的 首先检查所有静态URL 然后检查数据库 URL 如果都不存在则返回404 当然 静态 URL 很容易实现 但我正在尝试找出实现动态 URL 的最佳方法 我宁愿不必设置静态前缀
  • SWIFT:为什么“NSURL(string:”返回 Nil,即使它是浏览器中的有效 URL?

    前两个示例链接有效 第三个链接返回 NIL 为什么 NSUrl 对于这样的字符串返回 nil 即使它在浏览器中是有效的 url 我应该更多地处理字符串吗 这是我的代码 import UIKit import Foundation class
  • vfptr 中的 Visual C++ 方法按相反顺序排列

    有没有办法控制 vfptr 中某些类方法的顺序 看来Visual C 2010至少将方法指针按照声明顺序排列 重载方法除外 下面是示例代码 enum ENUM class CLASS virtual void foo1 virtual CL
  • 在 AngularJs 中共享数据

    如何将数据共享给所有控制器 我有一个控制器 可以从服务器 file json 中提取数据 我想将其共享给其他控制器 sampleApp controller PhoneListCtrl scope http function scope h
  • iPhone:时间剖面仪

    有没有好的教程或描述如何使用时间剖面仪 我发现的只是http blancer com tutorials flex 78335 apple profiling tools shark is out instruments is in and
  • 单词中不同的字母颜色[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 有没有什么解决方案可以结合html css和js来一一改变单词的字母颜色 某种简单的方法 我是js新手 是的 有 而且也很受欢迎 http lettingjs com 怎么运行的
  • 即使设置了哈希密码格式,ASP.Net 会员也会将更改后的密码保存为纯文本

    我正在使用 ASP Net SqlMembershipProvider 来管理我的用户 这是我的配置
  • python多线程比串行慢?

    我正在尝试找出Python 中的多线程编程 这是我想要比较串行和并行速度的简单任务 import threading import Queue import time import math def sinFunc offset n res
  • Excel Interop - 如何更改命名范围

    我有一个 Excel 模板文件 我从 SQL Server OLEDB 连接器将数据填充到其中 该文件包含一些引用数据库填充的数据集的数据透视表 目前我所做的是使用 Data A K 范围选择工作表中的所有行 这会带来数据透视表中显示空白值
  • 使用 jQuery 使用数据属性对元素进行排序

    只是想让你知道 我是一个菜鸟 我尝试为我的网站上的菜单导航编写特定功能 http thomasmedicus at 我希望我网站上的访问者能够按 日期 或 相关性 对我的项目进行排序 我创建了这张图片 以便您可以更好地了解我 preview
  • 在 Excel 2013 中使用宏设置打印区域

    在 Excel 2013 中 工作表名为 Tags 我在尝试着设置打印区域 from A2直到页尾 以列结束L Worksheets Tags PageSetup PrintArea Worksheets Tags Range Cells
  • 为什么我的模型预测相同的标签?

    我正在训练一个小型网络 训练似乎进展顺利 val 损失减少 验证准确度达到 80 左右 一旦没有更多改进 它实际上会停止训练 耐心 10 它训练了 40 个 epoch 然而 它只为每个测试图像预测一个类别 我尝试随机初始化转换层 我添加了
  • C# 正则表达式用于匹配嵌套括号内的特定文本

    我有这些代码行用于括号之间的运算符 string filtered Regex Replace input string Empty var result filtered Split new StringSplitOptions Remo
  • 逗号分隔值到单引号和逗号分隔值

    我的数据为 abc defg hijklm op qrs tuv 我希望将这些数据转换为 abc defg hijklm op qrs tuv 我想在linux下做 我使用 sed 我一直在互联网上查找 但没有找到解决方案 请帮我 在开头添
  • 核心数据不保存我的数据

    我使用核心数据来保存一些整数 速率 然后在上下文中调用 save HeartRateBeat beat HeartRateBeat heartRateWithHeartRate rate ofRecordTitle self recordT
  • 使用 Django 实现单点登录 (SSO) [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想使用 Django 为我们当前使用的多个应用程序实现单点登录 SSO 我如何使用 Django 来实现这个 我们正在使用 OpenAM http
  • 将 QWidget 渲染为 QImage 丢失 alpha 通道

    我有一个简单的 Qt 小部件 它是QLabel应用了简单的 CSS 样式 样式的重要部分是圆形边框 QString css border style solid border width 3px border radius 7px 它在屏幕
  • 反应js;映射数组后没有任何渲染

    我有一个输入 在用户插入文本后我想在按钮中显示每个单词button group 我拆分了句子并映射了返回的内容
  • 我应该使用哪种 java swing 布局

    我需要创建这个框架 我应该使用哪种布局 我正在考虑框或网格布局 但右侧的菜单将是一个问题 您的代码中有很多重复 我会分解每个部分 使其成为一个单独的组件 并专注于其单独的布局需求 主屏幕有 4 个主要区域 不包括菜单 我会用类似的东西Gri
  • 如何防止Mysql Connector/J转换DATE和TIME时区?

    我正在使用以下 DSN 连接到 mysql 服务器 jdbc mysql localhost my database useUnicode true characterEncoding utf 8 serverTimezone UTC 我遇