原文链接:Introduction to the Java 8 Date/Time API
1. Overview 概述
Java 8 introduced new APIs for?Date?and?Time?to address the shortcomings of the older?java.util.Date?and?java.util.Calendar.
Java8引入了新的日期时间API向旧的 java.util.Date 和 java.util.Calendar 挑衅、讨伐。
In this tutorial, let's start with the issues in the existing?Date?and?Calendar?APIs and discuss how the new Java 8?Date?and?Time?APIs address them.
在这篇文章中,让我们一起先讨论下旧的日期日历APIs,之后围观下Java8中新的日期时间APIs是如何向旧社会挑战的。
We will also look at some of the core classes of the new Java 8 project that are part of the?java.time?package, such as?LocalDate,?LocalTime,?LocalDateTime,?ZonedDateTime,?Period,?Duration?and their supported APIs.
我们也会聚焦于Java8中的 java.time 类包和其中的一些主要类,如 LocalDate LocalDateTime, ZonedDateTime Period Duration 和这些类中的APIs。
?
?
?
2. Java8之前的日期API的潜在问题 Issues With the Existing?Date/Time?APIs
- Thread safety?– The?Date?and?Calendar?classes are not thread safe, leaving developers to deal with the headache of hard-to-debug concurrency issues and to write additional code to handle thread safety. On the contrary, the new?Date?and?Time?APIs introduced in Java 8 are immutable and thread safe, thus taking that concurrency headache away from developers.
? ? ? ? 线程安全问题:java.util.Date 和 java.util.Calendar 不是线程安全的,它俩让开发人员来处理既头疼又很难调试的线程同步问题,为此还要去编写额外的代码来保证线程安全。
- API design and ease of understanding?– The?Date?and?Calendar?APIs are poorly designed with inadequate methods to perform day-to-day operations. The new?Date/Time?API is ISO-centric and follows consistent domain models for date, time, duration and periods. There are a wide variety of utility methods that support the most common operations.
- ZonedDate?and?Time?– Developers had to write additional logic to handle time-zone logic with the old APIs, whereas with the new APIs, handling of time zone can be done with?Local?and?ZonedDate/Time?APIs.
《未完待续》
|