JPA および Hibernate を使用して UTC タイム ゾーンで日付/時刻を保存する
JPA で日付と時刻を処理するときにタイム ゾーンの不一致が懸念されます/アプリケーションを休止状態にしますか?この記事では、時系列データを UTC (GMT) タイム ゾーンで効果的に保存および取得し、異なるタイム ゾーン間で一貫した正確な処理を保証する方法について説明します。
以下の注釈付き JPA エンティティを考えてみましょう:
public class Event {
@Id
public int id;
@Temporal(TemporalType.TIMESTAMP)
public java.util.Date date;
}
保存された日付が UTC 時間を反映していることを確認するには:
解決策:
Hibernate 5.2 以降、UTC タイム ゾーンの設定が簡素化されました。次のプロパティを JPA 設定ファイル (properties.xml) に追加します:
またはSpring Boot アプリケーションの場合、このプロパティを application.properties:
spring.jpa.properties.hibernate.jdbc.time_zone=UTC
に追加すると、この構成により、すべての一時データが確実に保存されます。 UTC タイムゾーンで取得されます。たとえば、日付 2008-Feb-03 9:30am Pacific Standard Time (PST) は、2008-Feb-03 5:30pm UTC としてデータベースに保存され、取得時にそのように解釈されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3