Almacenamiento de fecha/hora y marcas de tiempo en UTC con JPA e Hibernate
En Java Persistence API (JPA) e Hibernate, gestión de fecha/hora y los valores de marca de tiempo en diferentes zonas horarias pueden ser un desafío. Para garantizar un almacenamiento y recuperación coherentes de la hora UTC (hora universal coordinada), es crucial configurar el marco de manera adecuada.
Considere la entidad JPA anotada proporcionada:
public class Event {
@Id
public int id;
@Temporal(TemporalType.TIMESTAMP)
public java.util.Date date;
}
Para almacenar la fecha/hora en la zona horaria UTC, la propiedad hibernate.jdbc.time_zone se puede configurar de la siguiente manera:
Usando Properties.xml
En el archivo de configuración JPA properties.xml, agregue la siguiente propiedad:
Usando Spring Boot
Si usa Spring Boot, agregue esta propiedad a su aplicación.properties archivo:
spring.jpa.properties.hibernate.jdbc.time_zone=UTC
Con esta configuración, las fechas y las marcas de tiempo se almacenarán y recuperarán en la zona horaria UTC. Por ejemplo, si la fecha es 2008-02-03 9:30 am hora estándar del Pacífico (PST), se almacenará como 2008-02-03 5:30 pm UTC en la base de datos. Cuando se recupere, se interpretará como hora UTC, por lo que las 5:30 p. m. UTC siguen siendo las 5:30 p. m. UTC incluso después de la conversión a otra zona horaria.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3