In my entities classes I use to define the temporal fields as follows:
@Temporal(TemporalType.TIMESTAMP) @Column(name = "START_DATE") private Date start;
In my oracle DB the columns mapped by those fields are of type
What are the implications of this configurations:
Are my dates implicitily UTC dates ?
Does it mean I have to be careful on handling by myself Daylight saving time issues ?
TemporalType.TIMESTAMP corresponds to the JDBC
java.sql.Timestamp type, which in turn corresponds to Oracle’s (and the SQL standard)
TIMESTAMP [ WITHOUT TIME ZONE ] type. While JDBC 4.2 (Java 8) added support also for
OffsetDateTime, Java EE 7’s
TemporalType is not there yet.
This means that your values do not have any time zone attached to them, the semantics of the timestamp is that of the “local time zone”, whatever that is configured to be. Of course, you have to watch out for potentially different server (database) and client (machine running your Java application) “local time zones”!
You can achieve the desired behaviour if you are sure that client and server time zones are set to UTC.