Maison > Java > javaDidacticiel > Comment stocker la date/heure et les horodatages dans le fuseau horaire UTC avec JPA et Hibernate ?

Comment stocker la date/heure et les horodatages dans le fuseau horaire UTC avec JPA et Hibernate ?

Barbara Streisand
Libérer: 2024-10-31 16:46:30
original
768 Les gens l'ont consulté

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

Stockage de la date/heure et des horodatages dans le fuseau horaire UTC avec JPA et Hibernate

Lorsque vous travaillez avec des données temporelles dans des systèmes de bases de données, il est essentiel de considérez le fuseau horaire dans lequel les données sont stockées et interprétées. Pour les applications qui nécessitent une gestion cohérente de la date et de l'heure sur plusieurs fuseaux horaires, l'utilisation du fuseau horaire UTC (Temps universel coordonné) fournit une référence standard.

Pour configurer JPA et Hibernate pour stocker et récupérer les valeurs de date/heure au format UTC , quel que soit le fuseau horaire local, les étapes suivantes peuvent être suivies :

Entité JPA Configuration :

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

    @Temporal(TemporalType.TIMESTAMP)
    @TimeZone(value = TimeZone.UTC)
    public java.util.Date date;
}</code>
Copier après la connexion

En ajoutant @TimeZone(value = TimeZone.UTC) au champ de date annotée, vous spécifiez explicitement que la date doit être interprétée et stockée en heure UTC.

Configuration Hibernate pour le fuseau horaire UTC :

Hibernate 5.2 et Ci-dessus :

Dans Hibernate 5.2 et versions ultérieures, vous pouvez remplacer le fuseau horaire système par défaut utilisé par Hibernate en configurant la propriété hibernate.jdbc.time_zone dans votre fichier de configuration JPA (properties.xml) :

<code class="xml"><property name="hibernate.jdbc.time_zone" value="UTC"/></code>
Copier après la connexion

Botte de printemps Applications :

Si vous utilisez Spring Boot, vous pouvez définir la propriété ci-dessus dans votre fichier application.properties :

<code class="properties">spring.jpa.properties.hibernate.jdbc.time_zone=UTC</code>
Copier après la connexion

Exemple :

Considérez l'entité JPA définie dans l'exemple. Si le champ de date est défini sur 2008-Feb-03 9h30 PST (Pacific Standard Time), Hibernate stockera la valeur 2008-Feb-03 17h30 UTC dans la base de données. Cela garantit que l'heure est systématiquement stockée et récupérée dans le fuseau horaire UTC, quels que soient les paramètres du serveur ou du fuseau horaire local.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal