Stockage de la date/heure dans le fuseau horaire UTC avec JPA et Hibernate
Préoccupation des écarts de fuseau horaire lors de la gestion de la date et de l'heure dans votre JPA/ Mettre les applications en veille prolongée ? Cet article explique comment stocker et récupérer efficacement des données temporelles dans le fuseau horaire UTC (GMT), garantissant une gestion cohérente et précise sur différents fuseaux horaires.
Considérez l'entité JPA annotée ci-dessous :
<code class="java">public class Event { @Id public int id; @Temporal(TemporalType.TIMESTAMP) public java.util.Date date; }</code>
Pour garantir que la date stockée reflète l'heure UTC :
Solution :
Depuis Hibernate 5.2, la configuration du fuseau horaire UTC est simplifiée. En ajoutant la propriété suivante à votre fichier de configuration JPA (properties.xml) :
<code class="xml"><property name="hibernate.jdbc.time_zone" value="UTC"/></code>
ou pour les applications Spring Boot, en ajoutant cette propriété à application.properties :
<code class="properties">spring.jpa.properties.hibernate.jdbc.time_zone=UTC</code>
Cette configuration garantit que toutes les données temporelles sont stockées et récupérées dans le fuseau horaire UTC. Par exemple, la date 2008-Feb-03 9h30 Pacific Standard Time (PST) sera stockée comme 2008-Feb-03 17h30 UTC dans la base de données et interprétée comme telle une fois récupérée.
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!