Преобразование OffsetDateTime в Timestamp является простым (подсказка из этого вопроса) и работает так, как ожидалось:
Код: Выделить всё
import java.time._
import java.sql.Timestamp
val ofsdatetime = OffsetDateTime.now()
// ofsdatetime: java.time.OffsetDateTime = 2017-04-04T21:46:33.567+02:00
val tstamp = Timestamp.valueOf(ofsdatetime.atZoneSameInstant(ZoneOffset.UTC).toLocalDateTime())
// tstamp: java.sql.Timestamp = 2017-04-04 19:46:33.567
Преобразование обратно отметки времени в OffsetDateTime работает не так, как ожидалось:
Код: Выделить всё
OffsetDateTime.ofInstant(Instant.ofEpochMilli(tstamp.getTime), ZoneId.systemDefault())
// java.time.OffsetDateTime = 2017-04-04T19:46:33.567+02:00
Почему? Что я делаю не так?
Подробнее здесь: https://stackoverflow.com/questions/432 ... etdatetime
Мобильная версия