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.