Compare ZonedDateTime Objects in Java
ZonedDateTime class provides below APIs to compare ZonedDateTime objects in Java.
Methods inherited from interface java.time.chrono.ChronoZonedDateTime
- default boolean isAfter(ChronoZonedDateTime<?> other) - Checks if the instant of this date-time is after that of the specified date-time.
- default boolean isBefore(ChronoZonedDateTime<?> other) - Checks if the instant of this date-time is before that of the specified date-time.
- default boolean isEqual(ChronoZonedDateTime<?> other) - Checks if the instant of this date-time is equal to that of the specified date-time.
- default int compareTo(ChronoZonedDateTime<?> other) - Compares this date-time to another date-time, including the chronology.
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
/**
* Program to demonstrate ZonedDateTime Class APIs.
* @author javaguides.net
*
*/
public class ZonedDateTimeExample {
public static void main(String[] args) {
compareZonedDateTimeObjects();
}
private static void compareZonedDateTimeObjects() {
LocalDateTime dateTime = LocalDateTime.now();
ZonedDateTime dt1 = ZonedDateTime.of(dateTime, ZoneId.of("America/New_York"));
ZonedDateTime dt2 = ZonedDateTime.of(dateTime, ZoneId.of("America/New_York"));
ZonedDateTime dt3 = ZonedDateTime.of(dateTime, ZoneId.of("UTC"));
// Using isEqual()
if (dt1.isEqual(dt2)) {
System.out.println("dateTime1 and dateTime2 are equal.");
} else {
System.out.println("dateTime1 and dateTime2 are not equal.");
}
// Using compareTo()
if (dt1.compareTo(dt2) == 0) {
System.out.println("dateTime1 and dateTime2 are equal.");
} else {
System.out.println("dateTime1 and dateTime2 are not equal.");
}
// Using isAfter()
if (dt2.isAfter(dt3)) {
System.out.println("dateTime2 is after dateTime3");
}
// Using isBefore()
if (dt3.isBefore(dt1)) {
System.out.println("dateTime3 is before dateTime1");
}
}
}
Output:
dateTime1 and dateTime2 are equal.
dateTime1 and dateTime2 are equal.
dateTime2 is after dateTime3
dateTime3 is before dateTime1