# Calculate days between two OffsetDateTime objects in Java

By Atta Ur Rehman Shah (https://attacomsian.com/about). Published Nov 16, 2022. Topics: Java.
Canonical URL: https://attacomsian.com/blog/java-days-between-two-offsetdatetime-objects

> Learn how to use the ChronoUnit.DAYS enum to calculate days between two OffsetDateTime objects in Java.

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:

```java
// 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
```

The [`ChronoUnit`](https://attacomsian.com/blog/java-new-date-time-api#chrono-units-enum) enum class was introduced in Java 8 to represent individual date and time units such as day, month, year, week, hour, minutes, etc.

The `between()` method returns a negative difference in days if the start is after the end date, as shown below:

```java
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:

```java
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](https://attacomsian.com/blog/java-date-difference) to learn more about calculating the difference between two dates in Java.
