java读取数据库有时差,时差为11小时

shuhaith 2017-08-10 10:34:04
利用spring mvc框架搭建一个服务器后台,但是在使用中发现,利用spring的jdbcTemplate().query()方法获取的时间有点问题,时差也不是GMT+中存在的8个小时,而是11个小时。

这个问题不知道如何处理,我现在采取的办法是:再query()方法中获取时间,然后暴力减去多出来的11个小时替换掉原来的值。

利用show variables like "%time_zone%";得出如下结论:
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | CST |
| time_zone | SYSTEM |
+------------------+--------+
...全文
886 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuhaith 2017-08-11
  • 打赏
  • 举报
回复
引用 1 楼 zssazrael 的回复:
mysql 6.x 系列的 java 客户端有 bug, 检查一下你的 mysql 的 jdbc jar包版本,如果是 6,换成 5 的试试。
我尝试用mysql-connector-java的5.*包,不过还是同样的结果。
幽饮烛 2017-08-11
  • 打赏
  • 举报
回复
mysql 6.x 系列的 java 客户端有 bug, 检查一下你的 mysql 的 jdbc jar包版本,如果是 6,换成 5 的试试。
shuhaith 2017-08-11
  • 打赏
  • 举报
回复
引用 4 楼 shuhaith 的回复:
找到bug了,是druid的问题,我在调试的时候,发现利用resultSet.getString("time")和resultSet.getObject("time")有很大不同。 问题正是出在getObject方法上。 给出我调试中截的图:
然后我的解决办法是换用更低的版本,从1.0.29换成18
shuhaith 2017-08-11
  • 打赏
  • 举报
回复
找到bug了,是druid的问题,我在调试的时候,发现利用resultSet.getString("time")和resultSet.getObject("time")有很大不同。

问题正是出在getObject方法上。

给出我调试中截的图:

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧