Comparaison de dates hors heure : une exploration utilisant Joda Time
En Java, l'objet java.util.Date représente à la fois la date et l'heure. Lors de la comparaison de dates, il est souvent souhaitable d'ignorer la partie heure et de se concentrer uniquement sur la date elle-même.
Joda Time : une solution simplifiée
Joda Time, une bibliothèque renommée pour les calculs temporels, offre une solution élégante. Il fournit la méthode toLocalDate(), qui extrait les informations de date d'un objet DateTime, en ignorant les attributs d'heure.
DateTime first = ...; DateTime second = ...; LocalDate firstDate = first.toLocalDate(); LocalDate secondDate = second.toLocalDate(); return firstDate.compareTo(secondDate);
Vous pouvez également utiliser la méthode DateTimeComparator.getDateOnlyInstance(), qui simplifie le processus de comparaison :
return DateTimeComparator.getDateOnlyInstance().compare(first, second);
API intégrée Alternative
Si Joda Time n'est pas une option, vous pouvez ajuster manuellement une instance de calendrier pour représenter uniquement la date, en éliminant les champs heure, minute, seconde et milliseconde.
Calendar firstCalendar = Calendar.getInstance(); Calendar secondCalendar = Calendar.getInstance(); firstCalendar.set(Calendar.HOUR_OF_DAY, 0); firstCalendar.set(Calendar.MINUTE, 0); firstCalendar.set(Calendar.SECOND, 0); firstCalendar.set(Calendar.MILLISECOND, 0); secondCalendar.set(Calendar.HOUR_OF_DAY, 0); secondCalendar.set(Calendar.MINUTE, 0); secondCalendar.set(Calendar.SECOND, 0); secondCalendar.set(Calendar.MILLISECOND, 0); return firstCalendar.compareTo(secondCalendar);
Notez cependant que cette méthode est plus lourde et moins robuste que l'approche Joda Time.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!