Java 8 (LTS) · Topic 12 of 12
Date and Time API
Definition​
The java.time package (Java 8) replaced the old Date and Calendar. Its classes, such as LocalDate, LocalDateTime, Duration and Period, are immutable and clear, and they handle months, days and formatting correctly.
Example code​
Adding months, measuring days and formatting a date
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
class Demo {
public static void main(String[] args) {
LocalDate start = LocalDate.of(2026, 1, 31);
System.out.println(start.plusMonths(1)); // 2026-02-28: month-end is handled
System.out.println(start.getDayOfWeek());
LocalDate end = LocalDate.of(2026, 12, 25);
System.out.println(ChronoUnit.DAYS.between(start, end) + " days");
System.out.println(Period.between(start, end));
System.out.println(start.format(DateTimeFormatter.ofPattern("dd MMM yyyy")));
}
}
// Output:
// 2026-02-28
// SATURDAY
// 328 days
// P10M25D
// 31 Jan 2026
Finished this page? Track your progress (saved only in your browser).