The answer is: it depends
JODA (and JSR-310) is a fully-functional date/time library, including support for use with multiple calendar systems.
Personally I found JODA to be a step too far in terms of complexity for what I need. The 2 principal (IMHO) mistakes in the standard java Date
and Calendar
classes are:
- They are mutable
- They mix up the concept of a Year-Month-Day from an Instant-In-Time
Although these are addressed by JODA, you'll find it quite easy to roll your own classes for YearMonthDay
and Instant
, which both use the java classes under the hood for actual "calendrical" calculations. Then you don't have to familiarize yourself with an API of >100 classes, a different formatting/parsing mechanism etc.
Of course, if you do need complete representation of different chronologies (e.g. Hebrew) or wish to be able to define your own imaginary Calendar system (e.g. for a game you are writing) then perhaps JODA or JRS-310 is for you. If not, then I would suggest that rolling your own is possibly the way to go.
The JSR-310 spec lead is Stephen Colebourne who wrote JODA in the 1st place, so will logically replace JODA.