You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot Test时区异常偏移问题求助

ClickHouse JDBC时区偏移导致Date类型转换异常
  • 使用JPA(包含Hibernate 6),由于数据库列定义为DATE,JPA内部会强制使用java.util.Date类型,无法替换为其他更合适的日期类型
  • 已在无JPA的纯JDBC场景下复现问题,排除JPA本身的影响
  • ClickHouse服务器与Java应用均配置为UTC时区,但测试环境中执行current_date()查询并转换为Date类型时,得到的结果是2024-02-26 17:00,而当时实际UTC时间为2月27日(测试服务器操作系统时区为GMT+7);生产环境运行相同代码无异常

更新1:将测试服务器操作系统时区改为UTC后,问题消失,但通过VM参数-Duser.timezone=UTC指定时区无效果

更新2:调试ClickHouse JDBC驱动核心代码发现,驱动内部创建的Calendar实例使用了GMT+7时区,但在测试控制器中手动实例化的Calendar却是UTC时区

临时绕过方案:给JDBC连接添加额外参数use_server_time_zone=false&client_time_zone=UTC&use_time_zone=UTC,解决了时区错误创建的问题,但仍不明确根本原因:比如use_server_time_zone参数为何没有获取服务器的UTC时区,反而使用了客户端操作系统的默认时区

内容的提问来源于stack exchange,提问作者Hett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 19:52:31