Rumah  >  Artikel  >  Java  >  Bagaimana untuk Menyimpan dan Mendapatkan Nilai Tarikh/Masa dalam UTC dengan JPA dan Hibernate?

Bagaimana untuk Menyimpan dan Mendapatkan Nilai Tarikh/Masa dalam UTC dengan JPA dan Hibernate?

DDD
DDDasal
2024-10-31 16:40:01618semak imbas

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

Pengurusan Tarikh dan Masa Menggunakan Zon Waktu UTC dengan JPA dan Hibernate

Isu:

Bagaimanakah kita boleh mengkonfigurasi JPA dan Hibernate untuk menyimpan dan mendapatkan semula nilai tarikh/masa dalam zon waktu UTC?

Struktur Entiti JPA:

Pertimbangkan entiti JPA beranotasi berikut:

<code class="java">public class Event {
    @Id
    public int id;

    @Temporal(TemporalType.TIMESTAMP)
    public java.util.Date date;
}</code>

Senario:

Andaikan kita mempunyai nilai tarikh sebagai 2008-Feb-03 9:30 pagi Waktu Standard Pasifik (PST). Kami berhasrat untuk menyimpannya dalam pangkalan data sebagai waktu UTC yang sepadan, 2008-Feb-03 5:30 petang. Begitu juga, apabila diambil daripada pangkalan data, tarikh ini harus ditafsirkan sebagai UTC, bermakna 5:30 petang UTC diterjemahkan kepada 9:30 pagi PST apabila dipaparkan.

Penyelesaian:

Dari Hibernate 5.2 dan seterusnya, anda boleh menetapkan zon waktu UTC secara eksplisit dengan memanfaatkan sifat berikut:

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

Tambahkan sifat ini pada fail konfigurasi JPA properties.xml.

Untuk pengguna Spring Boot , tambahkan harta pada fail application.properties:

<code class="properties">spring.jpa.properties.hibernate.jdbc.time_zone=UTC</code>

Dengan melaksanakan konfigurasi ini, JPA dan Hibernate akan memastikan semua nilai tarikh/masa disimpan dan diambil semula dalam zon waktu UTC, menjamin tafsiran yang konsisten dan ketepatan merentas zon waktu yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk Menyimpan dan Mendapatkan Nilai Tarikh/Masa dalam UTC dengan JPA dan Hibernate?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn