Stockage de la date/heure et des horodatages en UTC avec JPA et Hibernate
Dans l'API Java Persistence (JPA) et Hibernate, gestion de la date/heure et les valeurs d'horodatage dans différents fuseaux horaires peuvent constituer un défi. Pour garantir un stockage et une récupération cohérents de l'heure UTC (temps universel coordonné), il est crucial de configurer le cadre de manière appropriée.
Considérez l'entité JPA annotée fournie :
<code class="Java">public class Event { @Id public int id; @Temporal(TemporalType.TIMESTAMP) public java.util.Date date; }</code>
Pour stocker la date /time dans le fuseau horaire UTC, la propriété hibernate.jdbc.time_zone peut être configurée comme suit :
À l'aide de Properties.xml
Dans le fichier de configuration JPA Properties.xml , ajoutez la propriété suivante :
<code class="XML"><property name="hibernate.jdbc.time_zone" value="UTC"/></code>
Utilisation de Spring Boot
Si vous utilisez Spring Boot, ajoutez cette propriété à votre fichier application.properties :
<code class="Properties">spring.jpa.properties.hibernate.jdbc.time_zone=UTC</code>
Avec cette configuration, les dates et les horodatages seront stockés et récupérés dans le fuseau horaire UTC. Par exemple, si la date est le 03/02/2008 à 9h30, heure normale du Pacifique (PST), elle sera stockée sous la forme 03/02/2008 à 17h30 UTC dans la base de données. Une fois récupéré, il sera interprété comme l'heure UTC, donc 17h30 UTC reste 17h30 UTC même après la conversion vers un autre fuseau horaire.
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!