The java.util.Date
and .Calendar
classes built into Java are notoriously troublesome. Instead use either the Joda-Time library or the new java.time package in Java 8 (inspired by Joda-Time, defined by JSR 310).
Joda-Time
Joda-Time has built-in support for the Java Comparator. And Joda-Time offers its own comparison methods: isBefore
, isBeforeNow
, isAfter
, isAfterNow
, isEqual
.
Example Code
DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" );
DateTime now = new DateTime( timeZone );
DateTime yesterday = now.minusDays( 1 );
boolean isYesterdayBeforeNow = yesterday.isBefore( now ); // TRUE.
java.time
In the java.time package, a ZonedDateTime
offers methods such as isBefore
and isAfter
.