Eclipse avertit que j'utilise une méthode obsolète:
eventDay = event.getEvent_s_date().getDate();
Je l'ai donc réécrit
eventDay = DateUtil.toCalendar(event.getEvent_s_date()).get(Calendar.DATE);
Cela semble fonctionner mais ça a l'air moche. Ma question est: ai-je refactorisé cela de la meilleure façon? Sinon, comment refactoriseriez-vous? J'ai besoin du numéro de jour d'une date stockée dans un bean.
J'ai fini par ajouter une méthode dans mes DateUtils pour le nettoyer
eventDay = DateUtil.getIntDate(event.getEvent_s_date());
public static int getIntDate(Date date) {
return DateUtil.toCalendar(date).get(Calendar.DATE);
}
C'est bon. Pour moi, le bit le plus laid est le trait de soulignement dans le nom de la méthode. Java froncent les sourcils là-bas.
Vous voudrez peut-être jeter un œil à joda-time . C'est la norme de facto pour travailler avec la date/l'heure:
new DateTime(date).getDayOfMonth();
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..
*/
Vous pouvez voir Java.util.Calendar API .
Avec Java 8 et versions ultérieures, c'est assez simple. Il y a la classe LocalDate
, qui a la méthode getDayOfMonth()
:
LocalDate date = now();
int dayOfMonth = date.getDayOfMonth();
Avec les classes Java.time vous n'avez plus besoin de ces bibliothèques tierces. Je recommanderais de lire LocalDate
et LocalDateTime
.
Si vous voulez une API Date/Heure plus élégante, utilisez Joda Time .