Класс для работы с датой в Java?

Не могу выбрать, чем пользоваться Date или Calendar (или может есть еще что-то?). Причина этому, что я еще не работал не с один из них.


Задача такая. Пользователь выполняет некоторые действия. Они фиксируются в журнале. Журнал не большой, поэтому его роль выполняет ArrayList с объектами (записями). Можно фиксировать с точностью до минуты, но лучше до секунды. После закрытия приложения, данные сохраняются в файл, в виде XML. Там же и хранится весь журнал. Потом при загрузке приложения, из файла все восстанавливается. Не спрашивайте почему XML.


Вопрос к вам, что лучше использовать?
  • Вопрос задан
  • 8701 просмотр
Пригласить эксперта
Ответы на вопрос 4
SSiarhei
@SSiarhei
Ну тут всё просто. Если просто хранить дату — достаточно Date. Если надо проводить различные действия (например подсчет количества дней между событиями итп) — то возможно есть смысл и Сalendar заюзать.
Ответ написан
Dmitry404
@Dmitry404
Если интересно можете посмотреть на joda time
Ответ написан
Комментировать
serso
@serso
Как уже советовали выше — Joda. Но есть ещё одна альернатива — time4j.
Совет от себя — храните дату всегда в одной временной зоне, и только при выводе переводите в нужную: stackoverflow.com/questions/508019/jpa-hibernate-store-date-in-utc-time-zone
Ответ написан
Комментировать
Lihonosov
@Lihonosov
В 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());
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы