2016-09-09 52 views
0

我有一個類型爲TIMESTAMP(6)的列的數據庫表。我希望在該列中的EST時間中始終存儲時間戳。任何人都可以幫助如何構建一個EST時間的時間戳對象嗎?構建EST中的時間戳對象

+0

考慮與類型,如'WITH TIME ZONE' TIMESTAMP創建數據庫列 - 讓數據庫和JDBC驅動程序會自動照顧的時區的問題,所以你可以把你的時間戳的時區無關的絕對點及時。 – Wyzard

回答

0

通常,我們使用PreparedStatement#setTimestamp(int paramIndex,Timestamp ts)將時間戳存儲在數據庫中。它利用Java端的'java.util.Date'和JDBC端的java.sql.Timestamp來實現這一點。這個調用將導致您的JDBC驅動程序計算JVM時區中的時間。但是,時間戳和時區信息的存儲取決於數據庫。如果該列沒有存儲時區的信息,則訪問它的應用程序將需要處理該時區。

現在,如果你想存儲時間戳的時區是從你的JVM TZ不同的,那麼你應該考慮使用:PreparedStatement#setTimestamp(int paramIndex, Timestamp ts, Calendar cal)

試試這個,讓我知道,如果它的工作原理。

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("EST")); 
stmt.setTimestamp(10, ts, cal);