将java.time.Instant转换为没有时区偏移的java.sql.Timestamp。
- 论坛
- 将java.time.Instant转换为没有时区偏移的java.sql.Timestamp。
15 浏览
将java.time.Instant转换为没有时区偏移的java.sql.Timestamp。
在我正在开发的应用程序中,我需要将java.time.Instant
对象转换为java.sql.Timestamp
。当我像这样创建Instant
对象时:
Instant now = Instant.now();
我得到的结果是2017-03-13T14:28:59.970Z
。当我尝试像这样创建Timestamp
对象时:
Timestamp current = Timestamp.from(now);
我得到的结果是2017-03-13T16:28:59.970Z
。结果相同,但是多了2个小时的延迟。
有人可以解释为什么会出现这种情况,并给我提供一个解决这个问题而不需要这个延迟的答案吗?
当我像这样创建时:
LocalDateTime ldt = LocalDateTime.ofInstant(Instant.now(), ZoneOffset.UTC); Timestamp current = Timestamp.valueOf(ldt);
一切都正常,但我想避免转换。有没有办法只使用Instant
对象来实现这个?