JPA と Hibernate を使用して UTC タイムゾーンで日付/時刻とタイムスタンプを保存する方法 質問する

JPA と Hibernate を使用して UTC タイムゾーンで日付/時刻とタイムスタンプを保存する方法 質問する

JPA/Hibernate を設定して、日付/時刻を UTC (GMT) タイムゾーンとしてデータベースに保存するにはどうすればよいでしょうか? 次の注釈付き JPA エンティティを検討してください。

public class Event {
    @Id
    public int id;

    @Temporal(TemporalType.TIMESTAMP)
    public java.util.Date date;
}

日付が 2008-Feb-03 午前 9:30 太平洋標準時 (PST) の場合、UTC 時刻の 2008-Feb-03 午後 5:30 をデータベースに保存します。同様に、日付がデータベースから取得されるときに、UTC として解釈します。したがって、この場合、午後 5:30 は UTC の午後 5:30 です。表示されるときは、午前 9:30 PST としてフォーマットされます。

ベストアンサー1

properties.xmlHibernate 5.2 以降では、次の構成プロパティをJPA 構成ファイルに追加することで、UTC タイムゾーンを強制できるようになりました。

<property name="hibernate.jdbc.time_zone" value="UTC"/>

Spring Boot を使用している場合は、次のプロパティをapplication.propertiesファイルに追加します。

spring.jpa.properties.hibernate.jdbc.time_zone=UTC

おすすめ記事