In this article, we will learn how to check whether one OffsetDateTime is Before another OffsetDateTime using OffsetDateTime.isBefore() method provided in Java 1.8 version
Compare two OffsetDateTime using isBefore() method :
- If there are two OffsetDateTime and the requirement is to check whether one OffsetDateTime is before another OffsetDateTime, then isBefore() method can be used
- isBefore(OffsetDateTime) – checks if the invoking OffsetDateTime is before the specified OffsetDateTime
- Comparison results –
- Returns true, if invoking OffsetDateTime is before the specified OffsetDateTime
- Returns false, if invoking OffsetDateTime is not before the specified OffsetDateTime
- Always returns false for self comparing OffsetDateTime
- Lets see an example for comparing two OffsetDateTime using isBefore() method
CheckOffsetDateTimeIsBeforeAnotherOffsetDateTime.java
package in.bench.resources.java8.offsetdatetime.examples;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
public class CheckOffsetDateTimeIsBeforeAnotherOffsetDateTime {
public static void main(String[] args) {
// 1. get Local Offset Date/time
ZoneOffset zoneOffsetLocal = ZoneOffset.of("+05:30");
OffsetDateTime currentOffsetDateTime = OffsetDateTime
.of(2022, 8, 15, 12, 30, 30, 500, zoneOffsetLocal);
System.out.println("1. Current Offset Date/time is = " + currentOffsetDateTime);
// 2. form Past Offset Date/time
ZoneOffset zoneOffsetPast = ZoneOffset.of("+10:30");
OffsetDateTime pastOffsetDateTime = OffsetDateTime
.of(2022, 8, 15, 12, 30, 30, 500, zoneOffsetPast);
System.out.println("2. Past Offset Date/time is = " + pastOffsetDateTime);
// 3. form Future Offset Date/time
ZoneOffset zoneOffsetFuture = ZoneOffset.of("-09:30");
OffsetDateTime futureOffsetDateTime = OffsetDateTime
.of(2022, 8, 15, 12, 30, 30, 500, zoneOffsetFuture);
System.out.println("3. Future Offset Date/time is = " + futureOffsetDateTime);
// 4. isBefore() - OffsetDateTime comparison
System.out.println("\n\n4. Comparing 2 OffsetDateTime using isBefore() method :- \n");
// 4.1 check whether currentOffsetDateTime isBefore futureOffsetDateTime
boolean isBefore1 = currentOffsetDateTime.isBefore(futureOffsetDateTime);
System.out.println("4.1 Current Offset Date/time (" + currentOffsetDateTime
+ ") \n\t\t is Before Future Offset Date/time (" + futureOffsetDateTime + ") ? "
+ isBefore1);
// 4.2 check whether currentOffsetDateTime isBefore pastOffsetDateTime
boolean isBefore2 = currentOffsetDateTime.isBefore(pastOffsetDateTime);
System.out.println("4.2 Current Offset Date/time (" + currentOffsetDateTime
+ ") \n\t\t is Before Past Offset Date/time (" + pastOffsetDateTime + ") ? "
+ isBefore2);
// 4.3 check whether pastOffsetDateTime isBefore currentOffsetDateTime
boolean isBefore3 = pastOffsetDateTime.isBefore(currentOffsetDateTime);
System.out.println("4.3 Past Offset Date/time (" + pastOffsetDateTime
+ ") \n\t\t is Before Current Offset Date/time (" + currentOffsetDateTime + ") ? "
+ isBefore3);
// 4.4 check whether pastOffsetDateTime isBefore futureOffsetDateTime
boolean isBefore4 = pastOffsetDateTime.isBefore(futureOffsetDateTime);
System.out.println("4.4 Past Offset Date/time (" + pastOffsetDateTime
+ ") \n\t\t is Before Future Offset Date/time (" + futureOffsetDateTime + ") ? "
+ isBefore4);
// 4.5 check whether futureOffsetDateTime isBefore currentOffsetDateTime
boolean isBefore5 = futureOffsetDateTime.isBefore(currentOffsetDateTime);
System.out.println("4.5 Future Offset Date/time (" + futureOffsetDateTime
+ ") \n\t\t is Before Current Offset Date/time (" + currentOffsetDateTime + ") ? "
+ isBefore5);
// 4.6 check whether futureOffsetDateTime isBefore pastOffsetDateTime
boolean isBefore6 = futureOffsetDateTime.isBefore(currentOffsetDateTime);
System.out.println("4.6 Future Offset Date/time (" + futureOffsetDateTime
+ ") \n\t\t is Before Past Offset Date/time (" + pastOffsetDateTime + ") ? "
+ isBefore6);
// 5. isBefore() - self OffsetDateTime comparison
System.out.println("\n\n5. Self comparing OffsetDateTime using isBefore() method :- \n");
// 5.1 check whether todaysLocalDate isBefore todaysLocalDate
boolean isBefore7 = currentOffsetDateTime.isBefore(currentOffsetDateTime);
System.out.println("5.1 Current Offset Date/time (" + currentOffsetDateTime
+ ") \n\t\t is Before Current Offset Date/time (" + currentOffsetDateTime + ") ? "
+ isBefore7);
// 5.2 check whether pastLocalDate isBefore pastLocalDate
boolean isBefore8 = pastOffsetDateTime.isBefore(pastOffsetDateTime);
System.out.println("5.2 Past Offset Date/time (" + pastOffsetDateTime
+ ") \n\t\t is Before Past Offset Date/time (" + pastOffsetDateTime + ") ? "
+ isBefore8);
// 5.3 check whether futureLocalDate isBefore futureLocalDate
boolean isBefore9 = futureOffsetDateTime.isBefore(futureOffsetDateTime);
System.out.print("5.3 Future Offset Date/time (" + futureOffsetDateTime
+ ") \n\t\t is Before Offset Future Date/time (" + futureOffsetDateTime + ") ? "
+ isBefore9);
}
}
Output:
1. Current Offset Date/time is = 2022-08-15T12:30:30.000000500+05:30
2. Past Offset Date/time is = 2022-08-15T12:30:30.000000500+10:30
3. Future Offset Date/time is = 2022-08-15T12:30:30.000000500-09:30
4. Comparing 2 OffsetDateTime using isBefore() method :-
4.1 Current Offset Date/time (2022-08-15T12:30:30.000000500+05:30)
is Before Future Offset Date/time (2022-08-15T12:30:30.000000500-09:30) ? true
4.2 Current Offset Date/time (2022-08-15T12:30:30.000000500+05:30)
is Before Past Offset Date/time (2022-08-15T12:30:30.000000500+10:30) ? false
4.3 Past Offset Date/time (2022-08-15T12:30:30.000000500+10:30)
is Before Current Offset Date/time (2022-08-15T12:30:30.000000500+05:30) ? true
4.4 Past Offset Date/time (2022-08-15T12:30:30.000000500+10:30)
is Before Future Offset Date/time (2022-08-15T12:30:30.000000500-09:30) ? true
4.5 Future Offset Date/time (2022-08-15T12:30:30.000000500-09:30)
is Before Current Offset Date/time (2022-08-15T12:30:30.000000500+05:30) ? false
4.6 Future Offset Date/time (2022-08-15T12:30:30.000000500-09:30)
is Before Past Offset Date/time (2022-08-15T12:30:30.000000500+10:30) ? false
5. Self comparing OffsetDateTime using isBefore() method :-
5.1 Current Offset Date/time (2022-08-15T12:30:30.000000500+05:30)
is Before Current Offset Date/time (2022-08-15T12:30:30.000000500+05:30) ? false
5.2 Past Offset Date/time (2022-08-15T12:30:30.000000500+10:30)
is Before Past Offset Date/time (2022-08-15T12:30:30.000000500+10:30) ? false
5.3 Future Offset Date/time (2022-08-15T12:30:30.000000500-09:30)
is Before Offset Future Date/time (2022-08-15T12:30:30.000000500-09:30) ? false
Related Articles:
- Java 8 – OffsetDateTime with method details and examples
- Java 8 – How to get Date, Time and Offset fields from OffsetDateTime ?
- Java 8 – How to form OffsetDateTime passing Date, Time and Offset fields ?
- Java 8 – How to form OffsetDateTime passing LocalDate, LocalTime and ZoneOffset ?
- Java 8 – How to form OffsetDateTime passing LocalDateTime and ZoneOffset ?
- Java 8 – How to form OffsetDateTime passing Instant and ZoneId ?
- Java 8 – How to parse OffsetDateTime in String form ?
- Java 8 – How to convert String to OffsetDateTime ?
- Java 8 – How to convert ZonedDateTime to String ?
- Java 8 – How to convert OffsetDateTime in different formats ?
- Java 8 – How to convert OffsetDateTime in different Format Style ?
- Java 8 – How to convert OffsetDateTime to LocalDateTime ?
- Java 8 – How to convert OffsetDateTime to ZonedDateTime ?
- Java 8 – How to convert OffsetDateTime to an Instant ?
- Java 8 – How to extract LocalDate and LocalTime and LocalDateTime from OffsetDateTime ?
- Java 8 – How to extract OffsetTime from OffsetDateTime ?
- Java 8 – How to convert OffsetDateTime to number of Seconds ?
- Java 8 – How to convert OffsetDateTime to java.util.Date and vice-versa ?
- Java 8 – How to convert OffsetDateTime to java.sql.Timestamp and vice-versa ?
- Java 8 – How to convert OffsetDateTime to Calendar and vice-versa ?
- Java 8 – How to convert OffsetDateTime to GregorianCalendar and vice-versa ?
- Java 8 – How to convert OffsetDateTime to XMLGregorianCalendar and vice-versa ?
- Java 8 – How to convert java.util.Date to an OffsetDateTime in different ways ?
- Java 8 – How to add Date and Time fields to OffsetDateTime ?
- Java 8 – How to subtract Date and Time fields from OffsetDateTime ?
- Java 8 – How to alter Date, Time and Offset fields of OffsetDateTime ?
- Java 8 – How to check whether an OffsetDateTime is Before another OffsetDateTime ?
- Java 8 – How to check whether an OffsetDateTime is After another OffsetDateTime ?
- Java 8 – How to compare two OffsetDateTime instances ?
- Java 8 – How to find difference between two OffsetDateTime using Period & Duration ?
- Java 9 – Find difference between two OffsetDateTime instances upto nanosecond precision ?
- More Java 8 Date/Time API examples
References:
- https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html
- https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html
- https://docs.oracle.com/javase/8/docs/api/java/time/ZoneOffset.html
Happy Coding !!
Happy Learning !!