是否弃用了java.util.Date和java.util.Calendar?

时间:2018-02-08 15:11:59

标签: java-8 java.util.date jsr310

似乎新的java.time API提供了java.util.Date以及更多内容的所有内容 自Java 8以来,当有更新的java.util.Date API时,有没有理由使用java.time? 是否应该完全避免java.util.Datejava.util.Calendar

1 个答案:

答案 0 :(得分:7)

简答:新API java.timejava.util.Datejava.util.Calendar的旧世界更好。所以,是的,在新代码中应首选新API。

快速浏览:为各种日期时间库编写comparison of features in table form后。几乎没有java.time缺少但在旧世界中存在的特征:

  • 可配置的格里高利/朱利安切换
  • 基于班级FieldPosition打印(用于Swing-component FormattedTextField

关于弃用:虽然自Java 1.1以来不推荐使用java.util.Date的大部分内容,但类本身(以及java.util.Calendar)也未正式弃用,只是声明为de事实上的遗产。对于向后兼容遗留代码的目标,旧类的支持仍然很重要。因此Oracle可能不会在将来的任何时候停止支持。但也许Oracle会应用更多sophisticated deprecation strategies

未来发展:有趣的是,Java-8的发布不仅包含了全新的日期/时间API(java.time),而且还看到了{java.util.Calendar的一些增强功能。 {1}},例如Calendar.BuilderSHORT_STANDALONE等。我只能推测,但这似乎也表明Oracle不愿意在不久的将来停止旧API的支持。