447 Stimmen

Wie vergleicht man Daten in Java?

Wie vergleicht man in Java dazwischenliegende Daten?

Exemple :

Datum1 ist 22-02-2010
Datum2 ist 07-04-2010 heute
Datum3 ist 25-12-2010

date3 ist immer größer als date1 y date2 ist immer heute. Wie kann ich überprüfen, ob das heutige Datum zwischen Datum 1 und Datum 3 liegt?

15voto

gstackoverflow Punkte 34294

Update für Java 8 und höher

Diese Methoden gibt es in LocalDate , LocalTime und LocalDateTime Klassen.

Diese Klassen sind in Java 8 und höher integriert. Ein Großteil der java.time-Funktionalität wurde in Java 6 und 7 zurückportiert in DreiZehn-Backport und weiter angepasst an Android in DreiZehnABP (siehe Wie benutzt man ).

11voto

Salman A Punkte 246207

Sie können verwenden [Date.getTime()](https://docs.oracle.com/javase/7/docs/api/java/util/Date.html#getTime()) die:

Gibt die Anzahl der Millisekunden seit dem 1. Januar 1970, 00:00:00 GMT repräsentiert durch dieses Date-Objekt.

Das bedeutet, dass man sie wie Zahlen vergleichen kann:

if (date1.getTime() <= date.getTime() && date.getTime() <= date2.getTime()) {
    /*
     * date is between date1 and date2 (both inclusive)
     */
}

/*
 * when date1 = 2015-01-01 and date2 = 2015-01-10 then
 * returns true for:
 * 2015-01-01
 * 2015-01-01 00:00:01
 * 2015-01-02
 * 2015-01-10
 * returns false for:
 * 2014-12-31 23:59:59
 * 2015-01-10 00:00:01
 * 
 * if one or both dates are exclusive then change <= to <
 */

8voto

Garambe Punkte 81

Versuchen Sie dies

public static boolean compareDates(String psDate1, String psDate2) throws ParseException{
        SimpleDateFormat dateFormat = new SimpleDateFormat ("dd/MM/yyyy");
        Date date1 = dateFormat.parse(psDate1);
        Date date2 = dateFormat.parse(psDate2);
        if(date2.after(date1)) {
            return true;
        } else {
            return false;
        }
    }

5voto

Everyone Punkte 2326

Verwenden Sie getTime(), um den numerischen Wert des Datums zu erhalten, und vergleichen Sie dann mit den zurückgegebenen Werten.

0voto

Brownsoo Han Punkte 4343

Der heute ermittelte Code ist von einiger Dauer und basiert auf dem Gebietsschema KOREA.

    Calendar cstart = Calendar.getInstance(Locale.KOREA);
    cstart.clear();
    cstart.set(startyear, startmonth, startday);

    Calendar cend = Calendar.getInstance(Locale.KOREA);
    cend.clear();
    cend.set(endyear, endmonth, endday);

    Calendar c = Calendar.getInstance(Locale.KOREA);

    if(c.after(cstart) && c.before(cend)) {
        // today is in startyear/startmonth/startday ~ endyear/endmonth/endday
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X