Java Reference
In-Depth Information
Chapter 6. Dates and Times—New API
Introduction
Developers suffered for a decade and a half under the inconsistencies and ambiguities of the
Date
class from Java 1.0 and its replacement-wannabe, the
Calendar
class from Java 1.1.
Several alternative "
Date
replacement” packages emerged, including the simple and sensible
Date4J
and the more comprehensive
Joda-Time package
. Java 8 introduced a new, consist-
ent, and well-thought-out package for date and time handling, under the aegis of the Java
Community Process, JSR-310, shepherded by Stephen Colbourne, based on his earlier pack-
“ISO 8601” dates; the default format is, for example, 2015-10-23T10:22:45. But it can, of
course, work with other calendar schemes.
One of the key benefits of the new API is that it provides
useful operations
such as adding/
subtracting dates/times. Much time was wasted by developers using the previous APIs re-im-
plementing these over and over. That said, millions of lines of code are based on the old
APIs, so we review them briefly, and consider interfacing the new API to legacy code, in the
final recipe of this chapter,
Interfacing with Legacy Date and Calendar Classes
.
Another advantage of the new API is that almost all objects are immutable, and thus thread-
safe. This can be of considerable benefit as we move headlong into the massively parallel
era.
Because there are no
set
methods, and thus the “get” method paradigm doesn't always make
sense, the API provides a series of new methods to replace such methods, listed in
Table 6-1
.