【发布时间】:2015-04-28 02:28:21
【问题描述】:
编辑:嗯,显然它过于基于意见,所以让我尝试更准确地重新措辞 -
在不需要任何向后兼容性的 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 没有明确的答案。
谢谢。
【问题讨论】:
-
good old java.util.Date- 它很旧,但不好。新代码应使用新 API。 -
创建全新的日期 API 是有原因的。如果您有一个新建项目,请使用 Java 8 引入的 API。
-
请使用新的 API。 :-P
-
Java 对使用 @Deprecated 注释来处理不好但不会被删除的东西持谨慎态度。
-
Oracle 自己的文档给出了弃用 API 的三个主要原因:"It is insecure, buggy, or highly inefficient; It is going away in a future release; It encourages bad coding practices." 这些是否适用于 java.util.Date 可能是一个见仁见智的问题。