Сохранение даты/времени и меток времени в формате UTC с помощью JPA и Hibernate
В Java Persistence API (JPA) и Hibernate, управление датой/временем и значения временных меток в разных часовых поясах могут быть проблемой. Чтобы обеспечить согласованное хранение и получение времени UTC (Всемирное координированное время), крайне важно правильно настроить структуру.
Рассмотрим предоставленный аннотированный объект JPA:
public class Event {
@Id
public int id;
@Temporal(TemporalType.TIMESTAMP)
public java.util.Date date;
}
Чтобы сохранить дату/время в часовом поясе UTC, свойство hibernate.jdbc.time_zone можно настроить следующим образом:
Использование Properties.xml
В файле конфигурации JPA Properties.xml добавьте следующее свойство:
Использование Spring Boot
Если вы используете Spring Boot, добавьте это свойство в файл application.properties:
spring.jpa.properties.hibernate.jdbc.time_zone=UTC
При такой конфигурации даты и временные метки будут храниться и извлекаться в часовом поясе UTC. Например, если дата — 03 февраля 2008 г., 9:30 утра по тихоокеанскому стандартному времени (PST), она будет сохранена в базе данных как 03 февраля 2008 г., 17:30 UTC. При получении оно будет интерпретироваться как время UTC, поэтому 17:30 UTC останется 17:30 UTC даже после преобразования в другой часовой пояс.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3