Joda Time 是否已弃用 java 8 日期和时间 API? (java.time)

Is Joda Time deprecated with java 8 Date and Time API? (java.time)

如果我可以使用 Java 8 日期和时间 API (java.time),还有什么理由使用 Joda Time?
我应该每次都使用 Java 8 日期和时间吗?

Joda-time 作者本人的官方说法是一旦Java-8 可用就迁移。另请参阅 website 中的引用:

Note that Joda-Time is considered to be a largely “finished” project. No major enhancements are planned. If using Java SE 8, please migrate to java.time (JSR-310).

所以对您的问题的简短回答是:是(已弃用)。但是,请记住,Joda-IntervalPeriodTypePeriodFormatter 等某些功能在 Java-8 中不可用,因此您必须编写自己的部分难看的解决方法,另请参阅我的 SO-post 关于 Joda-Time 和 JSR-310 之间的区别。

关于两个图书馆的未来的补充说明:

"finished" 在这种情况下是什么意思?

嗯,可以比较一下Joda-issue 254 with my small discussion on Twitter。我认为人们应该对 Joda-Time 的任何重大改进寄予厚望。还请考虑Joda-Time 未来的开发资源有限(缺乏人手)。老实说:自 2008 年 Joda-Time 以来的大多数版本都具有错误修复版本的特征(2.0 除外)。

另一方面:JSR-310的创新速度估计也不会很高(因为它已经很大了,而且甲骨文在这里起决定性作用,日期时间库一般不被视为任何 Java-版本的中心基石)。所以总会有一些 space 留给将来的外部库来提供缺失的功能,例如(按字母顺序):

  • Threeten-Extra(作为Basil Bourque的最爱,看他的评论)
  • Time4J(我自己的扩展,互操作性问题在 2015 年夏天解决)