我有类型的列DATETIME室内用的值2012-05-07 19:59:12在MySQL数据库.我正在尝试从DB中检索此值,假设它存储在UTC时区中:
Calendar cal = Calendar.getInstance(new SimpleTimeZone(0, "UTC"));
Date date = resultSet.getTimestamp(1, cal);
System.out.println(date);
Run Code Online (Sandbox Code Playgroud)
它输出(CEST是我当地的时区,比UTC早2小时):
Mon May 07 23:59:12 CEST 2012
Run Code Online (Sandbox Code Playgroud)
预期价值是:
Mon May 07 21:59:12 CEST 2012
Run Code Online (Sandbox Code Playgroud)
我在JDBC URL中使用这三个参数(Europe/Berlin与以下相同CEST):
..&useGmtMillisForDatetimes=true&useTimezone=true&serverTimezone=Europe/Berlin
Run Code Online (Sandbox Code Playgroud)
是我的缺陷还是应该在JDBC驱动程序中另外配置一些东西?我正在使用mysql:mysql-connector-java:5.1.20.
yeg*_*256 13
使用这些JDBC URL参数,它可以工作:
useGmtMillisForDatetimes=true
useJDBCCompliantTimezoneShift=true
useLegacyDate?timeCode=false
useTimezone=true
serverTimezone=UTC
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5278 次 |
| 最近记录: |