Chapter 18. Date and Time API
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: java.time.chrono, java.time.format, java.time.temporal, and java.time.zone.
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.
Legacy Interoperability
JSR 310 supercedes but does not deprecate java.util.Date, java.util.Calendar, java.util.DateFormat, java.util.GregorianCalendar, java.util.TimeZone, and 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 DateCalendarc=Calendar.getInstance();Instanti=c.toInstant ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access