use*_*512 4 java oracle timezone jdbc spring-jdbc
当我将new Date()
对象插入jdbcTemplate
Oracle数据库时,我可以看到jdbc驱动程序或Spring jdbcTemplate Date
使用本地JVM偏移量插入.
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
Date timeZoneDate = sdf.parse("09-SEP-1987");
Run Code Online (Sandbox Code Playgroud)
例如,当我插入在GMT中创建的Date对象时,如果JVM时区是USA,则将此结果插入到Oracle数据库中的08-SEP-1987中.
Ant*_*ton 20
java.util.Date
Oracle和Oracle 都不会Date
存储时区信息.在您的情况下,Jdbc驱动程序使用JVM时区转换您的日期.您可以使用以下选项之一:
setDate(int
parameterIndex, Date x, Calendar cal)
方法以Calendar
UTC时区指定.jdbcTemplate
而不是插入Date
的对象,插入Calendar
与UTC
时区TimeZone.setDefault(TimeZone.getTimeZone("GMT"))
可以在JVM lvl上设置-Duser.timezone=GMT
在JVM启动时使用