我已經閱讀了許多關於類似問題的答案,但仍然無法理解整個邏輯。 我的目標是在我的應用程序內部處理日期(包括時間,不僅僅是年份等),並考慮夏時制轉換和服務器的時區。我使用hibernate和postgresql db。我的錯誤是對來自數據庫的所有日期使用 java.util.Date類型。不久我意識到它不包含時區信息。現在問題出現了,如何使用正確的日期(考慮日光和時區)?Java從數據庫映射到休眠映射的日期(時區問題和夏令時)
什麼是正確的方法來做到這一點?使用不同類型的類如Calendar?或者就這樣離開它,但是在我使用日期的每個地方,我應該使用日曆將它轉換爲本地時區。
讓我困惑的是數據如何來自數據庫到Date對象,如果它的安全將日期對象轉換爲日曆以包含時區等?
如果我不得不在服務器上使用UTC,我將顯式設置日曆時區,然後使用Calendar.setTime(Date)也可以嗎? – maximus
如果你想在一個非UTC時區有'Date'內容,你應該首先使用帶有UTC的'Calendar.getInstance(TimeZone)'創建一個'Calendar',然後'setTime(Date)',然後將它改爲任何你喜歡使用'setTimeZone(TimeZone)'的時區。這是否符合你的問題? – Alexander
只是爲了確認,我留下了現在使用的hibernate實體代碼(使用java.util.Date),但是在那裏我使用了那個日期,我只是將它們轉換成Calendar來描述它的方式嗎? – maximus