Краткий ответ
Согласно документации , Instant
не поддерживается. Но у вас не должно быть проблем с OffsetDateTime
в UTC.
Длинный ответ
В документации PostgreSQL JDBC упоминается, что соответствующий тип дляTIMESTAMP [ WITHOUT TIMEZONE ]
- это LocalDateTime
, но OffsetDateTime
в UTC также поддерживается. С другой стороны, Instant
не поддерживается.
См. Приведенную ниже цитату:
+--------------------------------+----------------+
| PostgreSQL™ | Java SE 8 |
+--------------------------------+----------------+
| DATE | LocalDate |
| TIME [ WITHOUT TIMEZONE ] | LocalTime |
| TIMESTAMP [ WITHOUT TIMEZONE ] | LocalDateTime |
| TIMESTAMP WITH TIMEZONE | OffsetDateTime |
+--------------------------------+----------------+
Это тесно связано с таблицами B-4и B-5 спецификации JDBC 4.2. Обратите внимание, что ZonedDateTime
, Instant
и OffsetTime
/ TIME [ WITHOUT TIMEZONE ]
не поддерживаются. Также обратите внимание, что все экземпляры OffsetDateTime
будут в UTC (со смещением 0). Это связано с тем, что бэкэнд сохраняет их как UTC.
Спецификация JDBC 4.2 не поддерживает Instant
.
Также см. Следующую цитату из документации класса OffsetDateTime
(выделено мое):
OffsetDateTime
, ZonedDateTime
и Instant
все магазинымгновение на временной шкале с точностью до наносекунды. Мгновенное является самым простым, просто представляющим момент. OffsetDateTime
добавляет к моменту смещение от UTC / Гринвич, что позволяет получить местную дату и время. ZonedDateTime
добавляет полные правила часовых поясов.
Предполагается, что ZonedDateTime
или Instant
используется для моделирования данных в более простых приложениях. Этот класс может использоваться при более подробном моделировании концепций даты и времени, либо при обмене данными с базой данных или в сетевом протоколе.