看来新的 java.time
API 提供了 java.util.Date
的所有内容以及更多内容。
当 Java 8 以来出现较新的 java.time
API 时,是否有任何理由使用 java.util.Date
?
是否应该完全避免 java.util.Date
和 java.util.Calendar
?
最佳答案
简短回答:新的 API java.time
比使用 java.util.Date
和 的旧世界要好得多java.util.Calendar
。所以,是的,新代码中应该首选新 API。
快速概述:有一次我写了 comparison of features in table form适用于各种日期时间库。几乎没有 java.time
缺失但在旧世界中存在的功能:
- 可配置的公历/儒略转换
- 基于类
FieldPosition
进行打印(在 Swing 组件FormattedTextField
中使用)
关于弃用:尽管自 Java 1.1 以来,java.util.Date
的大部分内容已弃用,但该类本身(以及 java.util.Calendar
code> 也)并未被正式弃用,只是声明为事实上的遗产。对于向后兼容遗留代码的目标来说,旧类的支持仍然很重要。所以Oracle在未来任何时候都可能不会停止支持。但也许Oracle会应用更多sophisticated deprecation strategies 。
future 发展:有趣的是,Java-8 的发布不仅包含了全新的日期/时间 API (java.time
),而且还引入了新的日期/时间 API (java.time
)。对 java.util.Calendar 的一些增强,例如 Calendar.Builder或SHORT_STANDALONE等等。好吧,我只能推测,但这似乎也表明 Oracle 不愿意在不久的将来停止对旧 API 的支持。
关于java-8 - java.util.Date 和 java.util.Calendar 是否已弃用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48688736/