jdbctypetimestamp_getTimestamp()在MySQL JDBC连接器中进行两次时区转换?

I have a column of type DATETIME wiht a value of 2012-05-07 19:59:12 in MySQL database. I'm trying to retrieve this value from DB, assuming that it's stored in UTC timezone:

Calendar cal = Calendar.getInstance(new SimpleTimeZone(0, "UTC"));

Date date = resultSet.getTimestamp(1, cal);

System.out.println(date);

It outputs (CEST is my local timezone, which is 2 hours ahead of UTC):

Mon May 07 23:59:12 CEST 2012

Expected value is:

Mon May 07 21:59:12 CEST 2012

I'm using these three params in JDBC URL (Europe/Berlin is the same as CEST):

..&useGmtMillisForDatetimes=true&useTimezone=true&serverTimezone=Europe/Berlin

Is it my defect or something should be configured additionally in the JDBC driver? I'm using mysql:mysql-connector-java:5.1.20.

解决方案

With these JDBC URL params it works:

useGmtMillisForDatetimes=true

useJDBCCompliantTimezoneShift=true

useLegacyDate‌timeCode=false

useTimezone=true

serverTimezone=UTC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值