Rumah > Java > javaTutorial > teks badan

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

Barbara Streisand
Lepaskan: 2024-10-31 16:46:30
asal
696 orang telah melayarinya

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

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

Apabila bekerja dengan data temporal dalam sistem pangkalan data, adalah penting untuk pertimbangkan zon waktu di mana data disimpan dan ditafsirkan. Untuk aplikasi yang memerlukan pengendalian tarikh dan masa yang konsisten merentas berbilang zon waktu, menggunakan zon waktu Waktu Universal Selaras (UTC) menyediakan rujukan standard.

Untuk mengkonfigurasi JPA dan Hibernate untuk menyimpan dan mendapatkan semula nilai tarikh/masa sebagai UTC , tanpa mengira zon waktu tempatan, langkah berikut boleh diambil:

Konfigurasi Entiti JPA:

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

    @Temporal(TemporalType.TIMESTAMP)
    @TimeZone(value = TimeZone.UTC)
    public java.util.Date date;
}</code>
Salin selepas log masuk

Dengan menambahkan @TimeZone(value = TimeZone.UTC ) ke medan tarikh beranotasi, anda dengan jelas menyatakan bahawa tarikh itu harus ditafsirkan dan disimpan dalam masa UTC.

Konfigurasi Hibernate untuk Zon Waktu UTC:

Hibernate 5.2 dan Di Atas:

Dalam Hibernate 5.2 dan versi yang lebih baru, anda boleh mengatasi zon waktu sistem lalai yang digunakan oleh Hibernate dengan mengkonfigurasi sifat hibernate.jdbc.time_zone dalam fail konfigurasi JPA anda (properties.xml ):

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

Aplikasi Spring Boot:

Jika anda menggunakan Spring Boot, anda boleh menetapkan sifat di atas dalam fail application.properties anda:

<code class="properties">spring.jpa.properties.hibernate.jdbc.time_zone=UTC</code>
Salin selepas log masuk

Contoh:

Pertimbangkan entiti JPA yang ditakrifkan dalam contoh. Jika medan tarikh ditetapkan kepada 2008-Feb-03 9:30am PST (Pacific Standard Time), Hibernate akan menyimpan nilai sebagai 2008-Feb-03 5:30pm UTC dalam pangkalan data. Ini memastikan bahawa masa disimpan dan diambil secara konsisten dalam zon waktu UTC, tanpa mengira tetapan pelayan atau zon waktu setempat.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!