我应该使用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()));
- hh:mm a和HH之间的差异:mm a
- Java String to Date对象格式为“yyyy-mm-dd HH:mm:ss”
- 如何在Java中将字符串转换为Time对象?
- 使用Hibernate / JPA和JDK Date进行不需要的自动时区转换
- SimpleDateFormat无法正确解析毫秒数
- Java添加格式为dd的日期:HH:mm:ss
- 为什么在1582之前将Java日期转换为使用Instant的LocalDate给出不同的日期?
- 如何在Java DateUtils.parseDate中识别Zulu时区?
- Java – 将java.time.Instant转换为没有Zone偏移的java.sql.Timestamp