Java 8 – How to check whether an Instant is After another Instant ?

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

Compare two Instant using isAfter() method :

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

CheckInstantIsAfterAnotherInstant.java

package in.bench.resources.java8.instant.examples;

import java.time.Instant;

public class CheckInstantIsAfterAnotherInstant {

	public static void main(String[] args) {

		// 1. get current Instant at UTC
		String instantNowInStr = "2022-08-21T07:15:37.308075900Z";
		Instant instantNow = Instant.parse(instantNowInStr);
		System.out.println("1. Current Instant is \t\t = " + instantNow);


		// 2. parse future Instant 
		String instantFutureInStr = "2022-12-25T15:10:23.933345200Z";
		Instant instantFuture = Instant.parse(instantFutureInStr);
		System.out.println("2. Parsed FUTURE Instant is \t = " + instantFuture);


		// 3. parse past Instant 
		String instantPastInStr = "2022-01-26T15:10:23.933345200Z";
		Instant instantPast = Instant.parse(instantPastInStr);
		System.out.println("3. Parsed PAST Instant is \t = " + instantPast);



		// 4. isAfter() - Instant comparison
		System.out.println("\n\n4. Comparing 2 Instant using isAfter() method :- \n");


		// 4.1 check whether instantNow isAfter instantFuture
		boolean isAfter1 = instantNow.isAfter(instantFuture);
		System.out.println("4.1 Current Instant (" + instantNow 
				+ ") \n\t\t is After Future Instant (" + instantFuture + ") ? "
				+ isAfter1);


		// 4.2 check whether instantNow isAfter instantPast
		boolean isAfter2 = instantNow.isAfter(instantPast);
		System.out.println("4.2 Current Instant (" + instantNow 
				+ ") \n\t\t is After Past Instant (" + instantPast + ") ? "
				+ isAfter2);


		// 4.3 check whether instantPast isAfter instantNow 
		boolean isAfter3 = instantPast.isAfter(instantNow);
		System.out.println("4.3 Past Instant (" + instantPast 
				+ ") \n\t\t is After Current Instant (" + instantNow + ") ? "
				+ isAfter3);


		// 4.4 check whether instantPast isAfter instantFuture 
		boolean isAfter4 = instantPast.isAfter(instantFuture);
		System.out.println("4.4 Past Instant (" + instantPast 
				+ ") \n\t\t is After Future Instant (" + instantFuture + ") ? "
				+ isAfter4);


		// 4.5 check whether instantFuture isAfter instantNow 
		boolean isAfter5 = instantFuture.isAfter(instantNow);
		System.out.println("4.5 Future Instant (" + instantFuture 
				+ ") \n\t\t is After Current Instant (" + instantNow + ") ? "
				+ isAfter5);


		// 4.6 check whether instantFuture isAfter instantPast 
		boolean isAfter6 = instantFuture.isAfter(instantNow);
		System.out.println("4.6 Future Instant (" + instantFuture 
				+ ") \n\t\t is After Past Instant (" + instantPast + ") ? "
				+ isAfter6);



		// 5. isAfter() - self Instant comparison
		System.out.println("\n\n5. Self comparing Instant using isAfter() method :- \n");


		// 5.1 check whether todaysLocalDate isAfter todaysLocalDate
		boolean isAfter7 = instantNow.isAfter(instantNow);
		System.out.println("5.1 Current Instant (" + instantNow 
				+ ") \n\t\t is After Current Instant (" + instantNow + ") ? "
				+ isAfter7);


		// 5.2 check whether pastLocalDate isAfter pastLocalDate
		boolean isAfter8 = instantPast.isAfter(instantPast);
		System.out.println("5.2 Past Instant (" + instantPast 
				+ ") \n\t\t is After Past Instant (" + instantPast + ") ? "
				+ isAfter8);


		// 5.3 check whether futureLocalDate isAfter futureLocalDate
		boolean isAfter9 = instantFuture.isAfter(instantFuture);
		System.out.print("5.3 Future Instant (" + instantFuture 
				+ ") \n\t\t is After Future Instant (" + instantFuture + ") ? "
				+ isAfter9);
	}
}

Output:

1. Current Instant is 		 = 2022-08-21T07:15:37.308075900Z
2. Parsed FUTURE Instant is 	 = 2022-12-25T15:10:23.933345200Z
3. Parsed PAST Instant is 	 = 2022-01-26T15:10:23.933345200Z


4. Comparing 2 Instant using isAfter() method :- 

4.1 Current Instant (2022-08-21T07:15:37.308075900Z) 
		 is After Future Instant (2022-12-25T15:10:23.933345200Z) ? false
4.2 Current Instant (2022-08-21T07:15:37.308075900Z) 
		 is After Past Instant (2022-01-26T15:10:23.933345200Z) ? true
4.3 Past Instant (2022-01-26T15:10:23.933345200Z) 
		 is After Current Instant (2022-08-21T07:15:37.308075900Z) ? false
4.4 Past Instant (2022-01-26T15:10:23.933345200Z) 
		 is After Future Instant (2022-12-25T15:10:23.933345200Z) ? false
4.5 Future Instant (2022-12-25T15:10:23.933345200Z) 
		 is After Current Instant (2022-08-21T07:15:37.308075900Z) ? true
4.6 Future Instant (2022-12-25T15:10:23.933345200Z) 
		 is After Past Instant (2022-01-26T15:10:23.933345200Z) ? true


5. Self comparing Instant using isAfter() method :- 

5.1 Current Instant (2022-08-21T07:15:37.308075900Z) 
		 is After Current Instant (2022-08-21T07:15:37.308075900Z) ? false
5.2 Past Instant (2022-01-26T15:10:23.933345200Z) 
		 is After Past Instant (2022-01-26T15:10:23.933345200Z) ? false
5.3 Future Instant (2022-12-25T15:10:23.933345200Z) 
		 is After Future Instant (2022-12-25T15:10:23.933345200Z) ? false

Related Articles:

References:

Happy Coding !!
Happy Learning !!

Java 8 – How to compare two Instant instances ?
Java 8 – How to check whether an Instant is Before another Instant ?