文档

Java™ 教程-Java Tutorials 中文版
日期时间设计原则
Trail: Date Time
Lesson: Date-Time Overview

日期时间设计原则

Date-Time API 是使用几个设计原则开发的。

明确

API 中的方法定义明确,其行为清晰且预期。例如,使用 null 参数值调用 Date-Time 方法通常会触发 NullPointerException

流畅

Date-Time API 提供了流畅的接口,使代码易于阅读。因为大多数方法不允许带有 null 值的参数并且不返回 null 值,所以可以将方法调用链接在一起,并且可以快速理解生成的代码。例如:

LocalDate today = LocalDate.now();
LocalDate payday = today.with(TemporalAdjusters.lastDayOfMonth()).minusDays(2);

不可变

Date-Time API 中的大多数类都创建 immutable 对象,这意味着在创建对象后,无法修改它。要更改不可变对象的值,必须将新对象构造为原始对象的修改副本。这也意味着根据定义,Date-Time API 是线程安全的。这会影响 API,因为用于创建日期或时间对象的大多数方法都以 offromwith 为前缀,而不是构造函数,并且没有 set 方法。例如:

LocalDate dateOfBirth = LocalDate.of(2012, Month.MAY, 14);
LocalDate firstBirthday = dateOfBirth.plusYears(1);

可扩展

Date-Time API 尽可能是可扩展的。例如,你可以定义自己的时间调整器和查询,或构建自己的日历系统。


Previous page: Date-Time Overview
Next page: The Date-Time Packages