This week's book giveaway is in the OCMJEA forum. We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line! See this thread for details.
Precisely, Date/Time manipulations were previously handled through the java.util.Date class, but all of them are now deprecated.
Instead, we are now supposed to use the java.util.Calendar class for all kinds of Date/Time manipulations.
Note that java.util.Date is not deprecated in general - but many (not all!) of the specific constructors are deprecated.
I think of the relationship between these as similar to the relationship between String and StringBuilder (or StringBuffer). No, Date isn't immutable, but it should have been, and you should treat it as though it was. A Calendar is useful for building a Date up from other data, like starting with one Date and moving to the first Monday of the next month. Use it anytime you would need to know how many days are in each month, or when a leap year is, or which day of the week it it, in order to find an answer. Avoid it any other time, because it has an evil, ugly API. If you just need to represent a particular date or time, that's what java.util.Date is for (still) - and it's much better at that than Calendar is.
Also, don't forget java.text.SimpleDateFormat, which like Calendar is good for generating Dates, but bad for representing them. SimpleDateFormat solves fewer problems than Calendar does, but it's much easier to use for the problems it does solve.