The date-and-time API introduced in Java 8 is java.time.
The package supplies modern types such as LocalDate, LocalTime, LocalDateTime, Instant, Duration, and ZonedDateTime. It is designed around immutable value objects, which makes date calculations easier to reason about and safer to share between threads.
Java 8’s API was developed through JSR 310 and was strongly influenced by Joda-Time, an influential third-party library created by Stephen Colebourne. The new design addressed weaknesses in older classes such as java.util.Date and Calendar, including confusing mutability and awkward time-zone handling.
java.time is the core package, but the complete date-time system also includes related packages such as java.time.format, java.time.temporal, java.time.zone, and java.time.chrono. java.sql.Timestamp and java.util.Date remain available mainly for legacy or database interoperability, while Joda-Time is an external library rather than a Java SE API.