Armazenando data/hora e carimbos de data/hora em UTC com JPA e Hibernate
Em Java Persistence API (JPA) e Hibernate, gerenciando data/hora e valores de carimbo de data/hora em diferentes fusos horários podem ser um desafio. Para garantir armazenamento e recuperação consistentes do horário UTC (Tempo Universal Coordenado), é crucial configurar a estrutura adequadamente.
Considere a entidade JPA anotada fornecida:
public class Event {
@Id
public int id;
@Temporal(TemporalType.TIMESTAMP)
public java.util.Date date;
}
Para armazenar a data/hora no fuso horário UTC, a propriedade hibernate.jdbc.time_zone pode ser configurada da seguinte forma:
Usando Properties.xml
No arquivo de configuração JPA properties.xml, adicione a seguinte propriedade:
Usando Spring Boot
Se estiver usando Spring Boot, adicione esta propriedade ao seu arquivo application.properties:
spring.jpa.properties.hibernate.jdbc.time_zone=UTC
Com esta configuração, datas e carimbos de data/hora serão armazenados e recuperados no fuso horário UTC. Por exemplo, se a data for 03/02/2008, 9h30, horário padrão do Pacífico (PST), ela será armazenada como 03/02/2008, 17h30 UTC, no banco de dados. Quando recuperado, será interpretado como horário UTC, portanto, 17h30 UTC permanece 17h30 UTC mesmo após a conversão para outro fuso horário.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3