UnsupportedOperationException - 为什么不能在 java.sql.Date 上调用 toInstant()?

新手上路,请多包涵

The java.util.Date class has a method called toInstant() that converts the Date instance to a java.time.Instant .

The java.sql.Date class extends the java.util.Date class, but when I attempt to call toInstant() on a java.sql.Date , I receive an UnsupportedOperationException

为什么 toInstant()java.sql.Date 上不受支持的操作?

java.sql.Date java.time.Instant “正确”方法是什么?

原文由 Andrew Mairose 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

根据 JavaDoc

由于 sql.Date 没有时间分量,因此无法将其转换为 time.Instant

此方法始终抛出 UnsupportedOperationException,不应使用,因为 SQL 日期值没有时间部分。

原文由 Yassin Hajaj 发布,翻译遵循 CC BY-SA 4.0 许可协议

java.sql.Datejava.time 之间的正确映射是 LocalDate

 LocalDate date = sqlDate.toLocalDate();

_如果确实需要_,您可以派生一个 Instant ,尽管额外信息(时间)是任意的。例如:

 Instant i = date.atStartOfDay(ZoneOffset.UTC).toInstant();

原文由 assylias 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题