Date and Time Management Using UTC Time Zone with JPA and Hibernate
Issue:
How can we configure JPA and Hibernate to store and retrieve date/time values in the UTC time zone?
JPA Entity Structure:
Consider the following annotated JPA entity:
<code class="java">public class Event { @Id public int id; @Temporal(TemporalType.TIMESTAMP) public java.util.Date date; }</code>
Scenario:
Suppose we have a date value as 2008-Feb-03 9:30am Pacific Standard Time (PST). We aim to store it in the database as the corresponding UTC time, 2008-Feb-03 5:30pm. Similarly, when retrieved from the database, this date should be interpreted as UTC, meaning 5:30pm UTC translates to 9:30am PST when displayed.
Solution:
From Hibernate 5.2 onwards, you can explicitly set the UTC time zone by leveraging the following property:
<code class="xml"><property name="hibernate.jdbc.time_zone" value="UTC"/></code>
Add this property to the properties.xml JPA configuration file.
For Spring Boot users, add the property to the application.properties file:
<code class="properties">spring.jpa.properties.hibernate.jdbc.time_zone=UTC</code>
By implementing this configuration, JPA and Hibernate will ensure that all date/time values are stored and retrieved in the UTC time zone, guaranteeing consistent interpretation and accuracy across different time zones.
The above is the detailed content of How to Store and Retrieve Date/Time Values in UTC with JPA and Hibernate?. For more information, please follow other related articles on the PHP Chinese website!