Chapter 12. New Date and Time API
This chapter covers
- Why we needed a new date and time library in Java 8
- Representing date and time for both humans and machines
- Defining an amount of time
- Manipulating, formatting, and parsing dates
- Dealing with different time zones and calendars
The Java API includes many useful components to help you build complex applications. Unfortunately, the Java API isn’t always perfect. We believe the majority of experienced Java developers will agree that date and time support before Java 8 was far from ideal. Don’t worry, though; Java 8 introduces a brand new Date and Time API to tackle this issue.
In Java 1.0 the only support for date and time was the java.util.Date class. Despite its name, this class doesn’t represent a date but a point in time with milliseconds precision. Even worse, the usability of this class is harmed by some nebulous design decisions like the choice of its offsets: the years start from 1900, whereas the months start at index 0. This means that if you want to represent the release date of Java 8, which is March 18, 2014, you have to create an instance of Date as follows:
Printing this date produces