Не могу выбрать, чем пользоваться Date или Calendar (или может есть еще что-то?). Причина этому, что я еще не работал не с один из них.
Задача такая. Пользователь выполняет некоторые действия. Они фиксируются в журнале. Журнал не большой, поэтому его роль выполняет ArrayList с объектами (записями). Можно фиксировать с точностью до минуты, но лучше до секунды. После закрытия приложения, данные сохраняются в файл, в виде XML. Там же и хранится весь журнал. Потом при загрузке приложения, из файла все восстанавливается. Не спрашивайте почему XML.
Ну тут всё просто. Если просто хранить дату — достаточно Date. Если надо проводить различные действия (например подсчет количества дней между событиями итп) — то возможно есть смысл и Сalendar заюзать.
В Apache Commons DateUtils есть много удобных оберток для работой с Date. Также посмотрите на класс TimeUnit, например, нужно получить в минутах разницу между двумя датами:
Date currentDate = new Date();
Date pastDate = DateUtils.addDays(currentDate, -7); //минус 7 дней от текущей даты
int min = TimeUnit.MILLISECONDS.toMinutes(currentDate.getTime()-pastDate.getTime());