Класс для работы с датой в Java?
Ну тут всё просто. Если просто хранить дату — достаточно Date. Если надо проводить различные действия (например подсчет количества дней между событиями итп) — то возможно есть смысл и Сalendar заюзать.
Как уже советовали выше — Joda. Но есть ещё одна альернатива — time4j.
Совет от себя — храните дату всегда в одной временной зоне, и только при выводе переводите в нужную: stackoverflow.com/questions/508019/jpa-hibernate-store-date-in-utc-time-zone