JPA および Hibernate で UTC タイムゾーンを使用した日付と時刻の管理
問題:
UTC タイムゾーンで日付/時刻値を保存および取得するように JPA と Hibernate を構成するにはどうすればよいですか?
JPA エンティティ構造:
次の注釈付き JPA エンティティを考えてみましょう。
<code class="java">public class Event { @Id public int id; @Temporal(TemporalType.TIMESTAMP) public java.util.Date date; }</code>
シナリオ:
日付値が 2008-Feb-03 9:30am Pacific Standard Time (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>
このプロパティを JPA 構成ファイルのproperties.xml に追加します。
Spring Boot ユーザーの場合
<code class="properties">spring.jpa.properties.hibernate.jdbc.time_zone=UTC</code>
この設定を実装すると、JPA と Hibernate はすべての日付/時刻値が UTC タイム ゾーンで保存および取得され、一貫した解釈と取得が保証されます。異なるタイムゾーンにわたる精度。
以上がJPA と Hibernate を使用して UTC で日付/時刻値を保存および取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。