How to check if the difference between 2 dates is more than 20 minutes

Use

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

Or, more verbose, but perhaps slightly easier to read:

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

...

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

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

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

Java 8 solution:

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);
    }
}

Using Joda Time:

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

Tags:

Java

Date