ホームページ  >  記事  >  Java  >  JPA と Hibernate を使用して UTC で日付/時刻値を保存および取得する方法

JPA と Hibernate を使用して UTC で日付/時刻値を保存および取得する方法

DDD
DDDオリジナル
2024-10-31 16:40:01537ブラウズ

How to Store and Retrieve Date/Time Values in UTC with JPA and Hibernate?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。