Heim  >  Artikel  >  Java  >  Wie speichere und rufe ich Datums-/Uhrzeitwerte in UTC mit JPA und Hibernate ab?

Wie speichere und rufe ich Datums-/Uhrzeitwerte in UTC mit JPA und Hibernate ab?

DDD
DDDOriginal
2024-10-31 16:40:01531Durchsuche

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

Datums- und Zeitverwaltung unter Verwendung der UTC-Zeitzone mit JPA und Ruhezustand

Problem:

Wie können wir JPA und Hibernate so konfigurieren, dass Datums-/Uhrzeitwerte in der UTC-Zeitzone gespeichert und abgerufen werden?

JPA-Entitätsstruktur:

Betrachten Sie die folgende annotierte JPA-Entität:

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

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

Szenario:

Angenommen, wir haben einen Datumswert wie 03. Februar 2008, 9:30 Uhr Pacific Standard Time (PST). Unser Ziel ist es, es in der Datenbank als entsprechende UTC-Zeit, 3. Februar 2008, 17:30 Uhr, zu speichern. Ebenso sollte dieses Datum beim Abrufen aus der Datenbank als UTC interpretiert werden, was bedeutet, dass 17:30 Uhr UTC bei der Anzeige in 9:30 Uhr PST übersetzt wird.

Lösung:

Ab Hibernate 5.2 können Sie die UTC-Zeitzone explizit festlegen, indem Sie die folgende Eigenschaft nutzen:

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

Fügen Sie diese Eigenschaft zur JPA-Konfigurationsdatei Properties.xml hinzu.

Für Spring Boot-Benutzer , fügen Sie die Eigenschaft zur Datei application.properties hinzu:

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

Durch die Implementierung dieser Konfiguration stellen JPA und Hibernate sicher, dass alle Datums-/Uhrzeitwerte in der UTC-Zeitzone gespeichert und abgerufen werden, was eine konsistente Interpretation gewährleistet Genauigkeit über verschiedene Zeitzonen hinweg.

Das obige ist der detaillierte Inhalt vonWie speichere und rufe ich Datums-/Uhrzeitwerte in UTC mit JPA und Hibernate ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn