Maison  >  Article  >  Java  >  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
Barbara Streisandoriginal
2024-10-31 16:46:30753parcourir

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>

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>

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>

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!

Déclaration:
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