44 Stimmen

So prüfen Sie, ob der Unterschied zwischen 2 Daten mehr als 20 Minuten beträgt

Ich habe eine Datetime in einer Variablen previous . Jetzt möchte ich prüfen, ob der vorherige Zeitpunkt mehr als zwanzig Minuten vor dem aktuellen Zeitpunkt liegt.

Date previous = myobj.getPreviousDate();

Date now = new Date();

//check if previous was before 20 minutes from now ie now-previous >=20

Wie können wir das tun?

77voto

aioobe Punkte 397211

Verwenden Sie

if (now.getTime() - previous.getTime() >= 20*60*1000) {
    ...
}

Oder, etwas ausführlicher, aber vielleicht etwas leichter zu lesen:

import static java.util.concurrent.TimeUnit.*;

...

long MAX_DURATION = MILLISECONDS.convert(20, MINUTES);

long duration = now.getTime() - previous.getTime();

if (duration >= MAX_DURATION) {
    ...
}

22voto

dogbane Punkte 253146

Verwendung von Joda Zeit :

boolean result = Minutes.minutesBetween(new DateTime(previous), new DateTime())
                        .isGreaterThan(Minutes.minutes(20));

7voto

NickGreen Punkte 1683

Java 8 Lösung:

private static boolean isAtleastTwentyMinutesAgo(Date date) {
    Instant instant = Instant.ofEpochMilli(date.getTime());
    Instant twentyMinutesAgo = Instant.now().minus(Duration.ofMinutes(20));

    try {
        return instant.isBefore(twentyMinutesAgo);
    } catch (IOException e) {
        throw new IllegalStateException(e);
    }
}

6voto

Aleks G Punkte 54505

Sie sollten wirklich Calendar-Objekt anstelle von Date verwenden:

Calendar previous = Calendar.getInstance();
previous.setTime(myobj.getPreviousDate());
Calendar now = Calendar.getInstance();
long diff = now.getTimeInMillis() - previous.getTimeInMillis();
if(diff >= 20 * 60 * 1000)
{
    //at least 20 minutes difference
}

1voto

Vivien Barousse Punkte 20205

Ermitteln Sie die Zeiten in Millisekunden, und prüfen Sie die Differenz:

long diff = now.getTime() - previous.getTime();
if (diff > 20L * 60 * 1000) {
    // ...
}

Eine andere Lösung könnte die Verwendung der Joda-Zeit sein.

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