Gestion de la date et de l'heure à l'aide du fuseau horaire UTC avec JPA et Hibernate
Problème :
Comment pouvons-nous configurer JPA et Hibernate pour stocker et récupérer les valeurs de date/heure dans le fuseau horaire UTC ?
Structure de l'entité JPA :
Considérez l'entité JPA annotée suivante :
<code class="java">public class Event { @Id public int id; @Temporal(TemporalType.TIMESTAMP) public java.util.Date date; }</code>
Scénario :
Supposons que nous ayons une valeur de date comme 2008-Feb-03 9h30, heure normale du Pacifique (PST). Nous visons à le stocker dans la base de données à l'heure UTC correspondante, 03 février 2008, 17h30. De même, lorsqu'elle est extraite de la base de données, cette date doit être interprétée comme UTC, ce qui signifie que 17h30 UTC se traduit par 9h30 PST lorsqu'elle est affichée.
Solution :
À partir d'Hibernate 5.2, vous pouvez définir explicitement le fuseau horaire UTC en exploitant la propriété suivante :
<code class="xml"><property name="hibernate.jdbc.time_zone" value="UTC"/></code>
Ajoutez cette propriété au fichier de configuration JPA Properties.xml.
Pour les utilisateurs de Spring Boot , ajoutez la propriété au fichier application.properties :
<code class="properties">spring.jpa.properties.hibernate.jdbc.time_zone=UTC</code>
En implémentant cette configuration, JPA et Hibernate garantiront que toutes les valeurs de date/heure sont stockées et récupérées dans le fuseau horaire UTC, garantissant une interprétation cohérente et précision sur différents fuseaux horaires.
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!