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

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

Susan Sarandon
Susan Sarandonasal
2024-11-06 07:08:02500semak imbas

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

Menyimpan Tarikh/Masa dan Cap Masa dalam UTC dengan JPA dan Hibernate

Dalam Java Persistence API (JPA) dan Hibernate, menguruskan tarikh/masa dan nilai cap masa merentas zon waktu yang berbeza boleh menjadi satu cabaran. Untuk memastikan penyimpanan dan pengambilan masa UTC (Coordinated Universal Time) yang konsisten, adalah penting untuk mengkonfigurasi rangka kerja dengan sewajarnya.

Pertimbangkan entiti JPA beranotasi yang disediakan:

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

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

Untuk menyimpan tarikh /masa dalam zon waktu UTC, sifat hibernate.jdbc.time_zone boleh dikonfigurasikan seperti berikut:

Menggunakan Properties.xml

Dalam fail konfigurasi JPA properties.xml , tambahkan sifat berikut:

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

Menggunakan Spring Boot

Jika menggunakan Spring Boot, tambahkan sifat ini pada application.properties fail:

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

Dengan konfigurasi ini, tarikh dan cap masa akan disimpan dan diambil dalam zon waktu UTC. Contohnya, jika tarikh ialah 2008-02-03 9:30pg Waktu Piawai Pasifik (PST), ia akan disimpan sebagai 2008-02-03 5:30ptg UTC dalam pangkalan data. Apabila diambil, ia akan ditafsirkan sebagai waktu UTC, jadi 5:30 ptg UTC kekal 5:30 ptg UTC walaupun selepas penukaran kepada zon waktu yang lain.

Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Tarikh/Masa dan Cap 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