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!