我应该使用java.util.Date还是切换到java.time.LocalDate

编辑:嗯,显然这是基于意见,所以让我试着更准确地改写它 –

在不需要任何向后兼容性的Java代码中使用LocalDate,LocalTime等有任何明确的警告或缺点,如果是这样 – 它们是什么?

我正在寻找诸如“当前EE库X和Y与LocalDate无法正常工作”或“这个非常有用的模式被LocalTime打破”等等。


(这是原始问题供参考)

在Java 8中,引入了新的时间API,即java.time.LocalDate等,但java.util.Date未标记为已弃用。

我正在编写一个新项目,它不需要向后兼容。 我应该只使用LocalDate,LocalDateTime等吗? 与旧的java.util.Date相比,使用这个新API有什么缺点吗?

特别是 – 我将主要使用JDBC。 从我所看到的JDBC很好地处理java.util.Date。 它是否适合LocalDate?

搜索产生了很多站点,告诉他们如何从一种格式转换为另一种格式,但是如果新代码使用旧的API,则没有明确的答案。

谢谢。

尽管名称,java.util.Date可用于存储日期和时间(它存储自纪元以来的UTC毫秒偏移量)

我肯定会使用新的API,因为它具有更强大的function:

  • 更容易格式化/解析。 API有自己的格式/解析方法
  • API包括加/减操作(minusMinutes,plusDays等)

以上都不适用于java.util.Date

Old Date也可以像这样转换为LocalDateTime:

 Date oldDate = ... LocalDateTime newDateTime = LocalDateTime.from(Instant.ofEpochMilli(oldDate.getTime()));