Datumsvergleich ohne Zeit: Eine Erkundung mit Joda-Zeit
In Java repräsentiert das java.util.Date-Objekt sowohl Datum als auch Uhrzeit. Beim Vergleich von Daten ist es oft wünschenswert, den Zeitanteil zu ignorieren und sich ausschließlich auf das Datum selbst zu konzentrieren.
Joda Time: Eine vereinfachte Lösung
Joda Time, eine renommierte Bibliothek für zeitliche Berechnungen bietet eine elegante Lösung. Es stellt die Methode toLocalDate() bereit, die Datumsinformationen aus einem DateTime-Objekt extrahiert und dabei die Zeitattribute verwirft.
DateTime first = ...; DateTime second = ...; LocalDate firstDate = first.toLocalDate(); LocalDate secondDate = second.toLocalDate(); return firstDate.compareTo(secondDate);
Alternativ können Sie die Methode DateTimeComparator.getDateOnlyInstance() verwenden, die den Vergleichsprozess vereinfacht:
return DateTimeComparator.getDateOnlyInstance().compare(first, second);
Integrierte API-Alternative
Wenn Joda Time keine Option ist, können Sie eine Kalenderinstanz manuell so anpassen, dass sie nur das Datum darstellt und die Stunde eliminiert. Minuten-, Sekunden- und Millisekundenfelder.
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);
Beachten Sie jedoch, dass diese Methode im Vergleich zum Joda-Time-Ansatz umständlicher und weniger robust ist.
Das obige ist der detaillierte Inhalt vonWie vergleiche ich Daten in Java ohne Zeit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!