Skip to main content
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).