我有以下实体类:
@Entity
public class Event {
private OffsetDateTime startDateTime;
// ...
}
Run Code Online (Sandbox Code Playgroud)
然而,持续的,然后从与JPA 2.2结果数据库读取的实体/在信息丢失:所述ZoneOffset的startDateTime改变UTC(在ZoneOffset所使用的数据库的时间戳).例如:
Event e = new Event();
e.setStartDateTime(OffsetDateTime.parse("2018-01-02T09:00-05:00"));
e.getStartDateTime().getHour(); // 9
e.getStartDateTime().getOffset(); // ZoneOffset.of("-05:00")
// ...
entityManager.persist(e); // Stored startDateTime as timestamp 2018-01-02T14:00Z
Event other = entityManager.find(Event.class, e.getId());
other.getStartDateTime().getHour(); // 14 - DIFFERENT
other.getStartDateTime().getOffset(); // ZoneOffset.of("+00:00") - DIFFERENT
Run Code Online (Sandbox Code Playgroud)
我需要使用OffsetDateTime:我无法使用ZonedDateTime,因为区域规则发生了变化(而且还会受到此信息丢失的影响).我无法使用LocalDateTime,因为Event世界上任何地方都会发生这种情况,因为ZoneOffset出于准确性原因我需要原件.我无法使用,Instant因为用户填写了事件的开始时间(事件就像约会).
要求:
需要能够>, <, >=, <=, ==, …