The Date and Time API (JSR 310) provides support for date, time, and calendar calculations. The reference implementation (RI) for this JSR is the ThreeTen Project and was provided for inclusion into JDK 1.8. The Date and Time API is relative to the
java.time package and the following subpackages:
JSR 310 achieved several design goals:
A fluent API that is easy to read with chained methods
A thread-safe design with immutable value classes
An extensible API with calendar systems, adjusters, and queries
Expectable behavior where each method’s behavior is clear and well defined
The Date and Time API uses the International Organization for Standardization date and time data exchange model (ISO 8601). The ISO 8601 standard is formally called “Data elements and interchange formats—Information interchange—Representation of dates and times.” The standard is based on the Gregorian calendar. Regional calendars are also supported.
See Appendix A for more information on fluent APIs.
JSR 310 supercedes but does not deprecate
java.sql.Date. JDK 8 provides methods to these classes to convert to and from the JSR 310 types for legacy support:
// Legacy Calendar -> New Instant-> Legacy Date