使用UTC 時區與JPA 和Hibernate 進行日期和時間管理
問題:
我們如何設定JPA 和Hibernate 來儲存和檢索UTC 時區的日期/時間值?
JPA 實體結構:
考慮以下帶註釋的JPA 實體:
<code class="java">public class Event { @Id public int id; @Temporal(TemporalType.TIMESTAMP) public java.util.Date date; }</code>
場景:
假設我們的日期值為2008 年2 月3 日上午9:30 太平洋標準時間(PST)。我們的目標是將其儲存在資料庫中,作為相應的 UTC 時間,2008 年 2 月 3 日下午 5:30。同樣,從資料庫檢索時,該日期應解釋為 UTC,這意味著顯示時 UTC 下午 5:30 會轉換為太平洋標準時間上午 9:30。
解決方案:
從Hibernate 5.2 開始,您可以利用下列屬性明確設定UTC 時區:
<code class="xml"><property name="hibernate.jdbc.time_zone" value="UTC"/></code>
將此屬性新增到properties.xml JPA 設定檔中。
對於Spring Boot 用戶,將此屬性新增至application.properties 檔案:
<code class="properties">spring.jpa.properties.hibernate.jdbc.time_zone=UTC</code>
透過實作此配置,JPA 和Hibernate 將確保所有日期/時間值都在UTC 時區中儲存和檢索,從而確保一致的解釋和不同時區的準確性。
以上是如何使用 JPA 和 Hibernate 儲存和檢索 UTC 日期/時間值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!