執行此操作的一種方法如下。如何在查詢的基礎上設置JDBC的時區?
TimeZone.setDefault(TimeZone.getTimeZone("yourTimeZone"));
但是,它會影響整個JVM。有沒有辦法在查詢的基礎上做到這一點是安全的,並且不會影響其他應用程序或可能假定具體時區的JVM?
執行此操作的一種方法如下。如何在查詢的基礎上設置JDBC的時區?
TimeZone.setDefault(TimeZone.getTimeZone("yourTimeZone"));
但是,它會影響整個JVM。有沒有辦法在查詢的基礎上做到這一點是安全的,並且不會影響其他應用程序或可能假定具體時區的JVM?
指定設置/獲取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)
用給定的時區值的時區。
請注意,「日曆」對象僅用於時區信息(或至少,這就是JDBC要求的意圖)。 –
相關:http://stackoverflow.com/questions/14070572/is-java-sql-timestamp-timezone-specific –