50

Is there any reason to use Joda Time if I can use Java 8 Date and Time API (java.time)?
Should I use Java 8 Date and Time every time?

Ondrej Bozek
  • 10,987
  • 7
  • 54
  • 70

1 Answers1

62

The official statement of the author of Joda-time himself is to migrate as soon as Java-8 is available. See also this citation from the 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).

So the short answer to your question is: YES (deprecated). However, keep in mind that some features like Joda-Interval or PeriodType or PeriodFormatter are not available in Java-8 so you have to write your own partially ugly workarounds, see also my SO-post about differences between Joda-Time and JSR-310.

Side remarks about the future of both libraries:

What does "finished" means in this context?

Well, you can compare the Joda-issue 254 with my small discussion on Twitter. I think people should rather set down their expectations to any major enhancement of Joda-Time. Please also consider that the future development resources regarding Joda-Time are limited (lack of manpower). And let's be honest: Most releases since Joda-Time in year 2008 rather have the character of bugfix releases (with the exception of 2.0).

On the other side: The innovation speed of JSR-310 will probably not be very high, too (because it is already big, and because Oracle is here the decisive player and a date-time-library is in general not considered as the central cornerstone of any Java-release). So there is always some space left for an external library in the future to supply missing features, for example (in alphabetical order):

  • Threeten-Extra (as the favourite of Basil Bourque, see his comment)
  • Time4J (my own extension, interoperability issue solved in summer 2015)
Meno Hochschild
  • 42,708
  • 7
  • 104
  • 126
  • 4
    [ThreeTen-Extra](http://www.threeten.org/threeten-extra/) is one such external library supplying features missing in java.time. (To explain the name, JSR 310 defines java.time.) – Basil Bourque Apr 22 '15 at 09:02
  • @BasilBourque Thanks, I know Threeten-Extra, but am not impressed. It lacks manpower, too, and I can see some serious quality problems. You should also take a look at my library which will offer excellent interoperability with JSR-310 latest in June/July this year. – Meno Hochschild Apr 22 '15 at 10:35
  • 2
    I don't see any link here to your library, nor its name. – Basil Bourque Apr 22 '15 at 18:00