Java 8 – How to check whether a ZonedDateTime is After another ZonedDateTime ?

In this article, we will learn how to check whether one ZonedDateTime is After another ZonedDateTime using ZonedDateTime.isAfter() method in Java 1.8 version

Compare two ZonedDateTime using isAfter() method :

  • If there are two ZonedDateTime and the requirement is to check whether one ZonedDateTime is after another ZonedDateTime, then isAfter() method can be used
    • isAfter((ChronoZonedDateTime) – checks if the invoking ZonedDateTime is after the specified ZonedDateTime
  • Comparison results –
    1. Returns true, if invoking ZonedDateTime is after the specified ZonedDateTime
    2. Returns false, if invoking ZonedDateTime is not after the specified ZonedDateTime
    3. Always returns false for self comparing ZonedDateTime
  • Lets see an example for comparing two ZonedDateTime using isAfter() method

CheckZonedDateTimeIsAfterAnotherZonedDateTime.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package in.bench.resources.java8.zoneddatetime.examples;
 
import java.time.ZoneId;
import java.time.ZonedDateTime;
 
public class CheckZonedDateTimeIsAfterAnotherZonedDateTime {
 
    public static void main(String[] args) {
 
        // 1. get Current Zoned Date/time
        ZoneId zoneIdLocal = ZoneId.systemDefault();
        ZonedDateTime currentZonedDateTime = ZonedDateTime.of(2022, 8, 15, 12, 30, 30, 500, zoneIdLocal);
        System.out.println("1. Current Zoned Date/time is = " + currentZonedDateTime);
 
 
        // 2. form Past Date/time
        ZoneId zoneIdPast = ZoneId.of("Australia/Sydney");
        ZonedDateTime pastZonedDateTime = ZonedDateTime.of(2022, 8, 15, 12, 30, 30, 500, zoneIdPast);
        System.out.println("2. Past Zoned Date/time is = " + pastZonedDateTime);
 
 
        // 3. form Future Date/time
        ZoneId zoneIdFuture = ZoneId.of("America/Chicago");
        ZonedDateTime futureZonedDateTime = ZonedDateTime.of(2022, 8, 15, 12, 30, 30, 500, zoneIdFuture);
        System.out.println("3. Future Zoned Date/time is = " + futureZonedDateTime);
 
 
 
        // 4. isAfter() - LocalDateTime comparison
        System.out.println("\n\n4. Comparing 2 LocalDateTime using isAfter() method :- \n");
 
 
        // 4.1 check whether currentZonedDateTime isAfter futureZonedDateTime
        boolean isAfter1 = currentZonedDateTime.isAfter(futureZonedDateTime);
        System.out.println("4.1 Current Date/time (" + currentZonedDateTime
                + ") \n\t\t is After Future Date/time (" + futureZonedDateTime + ") ? "
                + isAfter1);
 
 
        // 4.2 check whether currentZonedDateTime isAfter pastZonedDateTime
        boolean isAfter2 = currentZonedDateTime.isAfter(pastZonedDateTime);
        System.out.println("4.2 Current Date/time (" + currentZonedDateTime
                + ") \n\t\t is After Past Date/time (" + pastZonedDateTime + ") ? "
                + isAfter2);
 
 
        // 4.3 check whether pastZonedDateTime isAfter currentZonedDateTime
        boolean isAfter3 = pastZonedDateTime.isAfter(currentZonedDateTime);
        System.out.println("4.3 Past Date/time (" + pastZonedDateTime
                + ") \n\t\t is After Current Date/time (" + currentZonedDateTime + ") ? "
                + isAfter3);
 
 
        // 4.4 check whether pastZonedDateTime isAfter futureZonedDateTime
        boolean isAfter4 = pastZonedDateTime.isAfter(futureZonedDateTime);
        System.out.println("4.4 Past Date/time (" + pastZonedDateTime
                + ") \n\t\t is After Future Date/time (" + futureZonedDateTime + ") ? "
                + isAfter4);
 
 
        // 4.5 check whether futureZonedDateTime isAfter currentZonedDateTime
        boolean isAfter5 = futureZonedDateTime.isAfter(currentZonedDateTime);
        System.out.println("4.5 Future Date/time (" + futureZonedDateTime
                + ") \n\t\t is After Current Date/time (" + currentZonedDateTime + ") ? "
                + isAfter5);
 
 
        // 4.6 check whether futureZonedDateTime isAfter pastZonedDateTime
        boolean isAfter6 = futureZonedDateTime.isAfter(currentZonedDateTime);
        System.out.println("4.6 Future Date/time (" + futureZonedDateTime
                + ") \n\t\t is After Past Date/time (" + pastZonedDateTime + ") ? "
                + isAfter6);
 
 
 
        // 5. isAfter() - self LocalDateTime comparison
        System.out.println("\n\n5. Self comparing LocalDateTime using isAfter() method :- \n");
 
 
        // 5.1 check whether currentZonedDateTime isAfter currentZonedDateTime
        boolean isAfter7 = currentZonedDateTime.isAfter(currentZonedDateTime);
        System.out.println("5.1 Current Date/time (" + currentZonedDateTime
                + ") \n\t\t is After Current Date/time (" + currentZonedDateTime + ") ? "
                + isAfter7);
 
 
        // 5.2 check whether pastZonedDateTime isAfter pastZonedDateTime
        boolean isAfter8 = pastZonedDateTime.isAfter(pastZonedDateTime);
        System.out.println("5.2 Past Date/time (" + pastZonedDateTime
                + ") \n\t\t is After Past Date/time (" + pastZonedDateTime + ") ? "
                + isAfter8);
 
 
        // 5.3 check whether futureZonedDateTime isAfter futureZonedDateTime
        boolean isAfter9 = futureZonedDateTime.isAfter(futureZonedDateTime);
        System.out.print("5.3 Future Date/time (" + futureZonedDateTime
                + ") \n\t\t is After Future Date/time (" + futureZonedDateTime + ") ? "
                + isAfter9);
    }
}

Output:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1. Current Zoned Date/time is = 2022-08-15T12:30:30.000000500+05:30[Asia/Calcutta]
2. Past Zoned Date/time is = 2022-08-15T12:30:30.000000500+10:00[Australia/Sydney]
3. Future Zoned Date/time is = 2022-08-15T12:30:30.000000500-05:00[America/Chicago]
 
 
4. Comparing 2 LocalDateTime using isAfter() method :-
 
4.1 Current Date/time (2022-08-15T12:30:30.000000500+05:30[Asia/Calcutta])
         is After Future Date/time (2022-08-15T12:30:30.000000500-05:00[America/Chicago]) ? false
4.2 Current Date/time (2022-08-15T12:30:30.000000500+05:30[Asia/Calcutta])
         is After Past Date/time (2022-08-15T12:30:30.000000500+10:00[Australia/Sydney]) ? true
4.3 Past Date/time (2022-08-15T12:30:30.000000500+10:00[Australia/Sydney])
         is After Current Date/time (2022-08-15T12:30:30.000000500+05:30[Asia/Calcutta]) ? false
4.4 Past Date/time (2022-08-15T12:30:30.000000500+10:00[Australia/Sydney])
         is After Future Date/time (2022-08-15T12:30:30.000000500-05:00[America/Chicago]) ? false
4.5 Future Date/time (2022-08-15T12:30:30.000000500-05:00[America/Chicago])
         is After Current Date/time (2022-08-15T12:30:30.000000500+05:30[Asia/Calcutta]) ? true
4.6 Future Date/time (2022-08-15T12:30:30.000000500-05:00[America/Chicago])
         is After Past Date/time (2022-08-15T12:30:30.000000500+10:00[Australia/Sydney]) ? true
 
 
5. Self comparing LocalDateTime using isAfter() method :-
 
5.1 Current Date/time (2022-08-15T12:30:30.000000500+05:30[Asia/Calcutta])
         is After Current Date/time (2022-08-15T12:30:30.000000500+05:30[Asia/Calcutta]) ? false
5.2 Past Date/time (2022-08-15T12:30:30.000000500+10:00[Australia/Sydney])
         is After Past Date/time (2022-08-15T12:30:30.000000500+10:00[Australia/Sydney]) ? false
5.3 Future Date/time (2022-08-15T12:30:30.000000500-05:00[America/Chicago])
         is After Future Date/time (2022-08-15T12:30:30.000000500-05:00[America/Chicago]) ? false

Related Articles:

References:

Happy Coding !!
Happy Learning !!

Java 8 – How to compare two ZonedDateTime instances ?
Java 8 – How to check whether a ZonedDateTime is Before another ZonedDateTime ?