a) Most parts of java.util.Date
was deprecated in Java 1.1 in favor of java.util.Calendar
because it simply lacked of timezone support.
b) Calendar
has much more manipulations than java.util.Date
, but for storing and formatting purposes latter one is still the only option. Remember that you cannot directly format a Calendar
-object with SimpleDateFormat
.
c) On most areas Joda-Time is better, for example immutability. But especially internationalization is better with old Calendar-stuff, for example localized week definition support, for some people this is a showstopper regarding Joda-Time.
d) Keep also in mind that Joda-Time is now rather an old API (for example not using enums). Some internal concepts are effectively deprecated by its own developer in favor of the new date-and-time-library in Java 8 (JSR-310, java-time-package). My prediction, Joda-Time will slowly fade out - also because it is obvious that Stephen Colebourne prefers to invest his resources in Java-8 and an extra external library called Threeten-Extra (which contains some extra calendar systems). Main remaining argument in favor of Joda-Time is still support for mixed date-and-time-periods, some simple interval-support and period formatting support.