Java Date getDate() устарел, реорганизован для использования календаря, но выглядит уродливым

Eclipse предупреждает, что я использую устаревший метод:

eventDay = event.getEvent_s_date().getDate();

Поэтому я переписал его как

eventDay = DateUtil.toCalendar(event.getEvent_s_date()).get(Calendar.DATE);

Кажется, что это работает, но выглядит уродливо. Мой вопрос: я реорганизовал это наилучшим образом? Если нет, как бы вы реорганизовали? Мне нужен номер дня, хранящийся в bean.

В итоге я добавил метод в свой DateUtils, чтобы очистить его

eventDay = DateUtil.getIntDate(event.getEvent_s_date());

public static int getIntDate(Date date) {
    return DateUtil.toCalendar(date).get(Calendar.DATE);
}

Ответы

Ответ 1

Это хорошо. Для меня более уродливым битом является символ подчеркивания в имени метода. Соглашения Java нахмурились там, где подчеркиваются.

Вы можете взглянуть на joda-time. Это де-факто стандарт для работы с датой/временем:

new DateTime(date).getDayOfMonth();

Ответ 2

Calendar cal = Calendar.getInstance();
            cal.setTime(date);

Integer date = cal.get(Calendar.DATE);

/*Similarly you can get whatever value you want by passing value in cal.get()
      ex DAY_OF_MONTH
      DAY_OF_WEEK
      HOUR_OF_DAY
      etc etc.. 
*/

Вы можете увидеть java.util.Calendar API.

Ответ 3

Если вам нужна более элегантная дата/время api, используйте Joda Time.