执行此操作的一种方法如下。
TimeZone.setDefault(TimeZone.getTimeZone("yourTimeZone"));
但是,它会影响整个JVM。有没有办法在查询的基础上这样做是安全的,并且不会对可能假定特定时区的应用程序或JVM的其他部分产生影响?
答案 0 :(得分:2)
在设置/获取Timestamp
值时指定所需的时区。
PreparedStatement.setTimestamp(int parameterIndex, Timestamp x, Calendar cal)
使用Calendar对象,驱动程序可以计算考虑自定义时区的时间戳。如果未指定Calendar对象,则驱动程序将使用默认时区,即运行应用程序的虚拟机的时区。
ResultSet.getTimestamp(String columnLabel, Calendar cal)
如果基础数据库不存储时区信息,则此方法使用给定的日历为时间戳构造适当的毫秒值。
两者都使用日历的时区:
Calendar.getInstance(TimeZone zone)
使用指定的时区和默认语言环境获取日历。
Calendar.setTimeZone(TimeZone value)
使用给定的时区值设置时区。