我有一个java.time.OffsetDateTime
,我想将其转换为java.sql.Timestamp
。由于Timestamp
不存储任何偏移量信息,因此我将所有日期/时间存储为UTC。
如何将OffsetDateTime
转换为UTC中的Timestamp
?
编辑:
我相信这是答案,但似乎隐瞒UTC的方式相当复杂:
OffsetDateTime dateTime = OffsetDateTime.now();
Timestamp timestamp = Timestamp.valueOf(dateTime.atZoneSameInstant(ZoneId.of("Z")).toLocalDateTime());
最佳答案
这将是进行转换并确保使用UTC的一种方式。我认为这比使用时代秒提出的解决方案更干净。
Timestamp test = Timestamp.valueOf(entityValue.atZoneSameInstant(ZoneOffset.UTC).toLocalDateTime());