You can use the
ChronoUnit.DAYS enum to calculate the days between two
OffsetDateTime instances in Java. It provides the
between() method to calculate the amount of time between two temporal objects:
// Create date instances OffsetDateTime startOffsetDT = OffsetDateTime.parse("2022-02-23T10:40:30+03:30"); OffsetDateTime endOffsetDT = OffsetDateTime.parse("2022-11-12T10:40:33-05:00"); // Calculate the difference long days = ChronoUnit.DAYS.between(startOffsetDT, endOffsetDT); // Print days System.out.println("Days between " + startOffsetDT + " and " + endOffsetDT + ": " + days); // Days between 2022-02-23T10:40:30+03:30 and 2022-11-12T10:40:33-05:00: 262
ChronoUnit enum class was introduced in Java 8 to represent individual date and time units such as day, month, year, week, hour, minutes, etc.
between() method returns a negative difference in days if the start is after the end date, as shown below:
System.out.println(ChronoUnit.DAYS.between(endOffsetDT, startOffsetDT)); // -262
You can also use the
ChronoUnit enum to calculate the difference between two
OffsetDateTime objects in weeks, months, and years:
System.out.println(ChronoUnit.WEEKS.between(startOffsetDT, endOffsetDT)); // 37 System.out.println(ChronoUnit.MONTHS.between(startOffsetDT, endOffsetDT)); // 8 System.out.println(ChronoUnit.YEARS.between(startOffsetDT, endOffsetDT)); // 0
Read this article to learn more about calculating the difference between two dates in Java.