文档

Java™教程
隐藏目录
日期和时间设计原则
教程:日期时间
课程:日期时间概述

日期时间设计原则

日期时间API是使用几个设计原则开发的。

清晰

API中的方法定义明确,行为清晰可预测。例如,使用null参数值调用日期时间方法通常会触发NullPointerException

流畅

日期时间API提供流畅的接口,使代码易于阅读。由于大多数方法不允许使用null值参数,并且不返回null值,因此方法调用可以链接在一起,生成的代码可以快速理解。例如:

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

不可变

日期时间API中的大多数类创建的对象是不可变的,意味着在对象创建后,它们不能被修改。要更改不可变对象的值,必须构建一个修改后的副本作为原始对象的副本。这也意味着日期时间API在定义上是线程安全的。这影响API的方式是,用于创建日期或时间对象的大多数方法以offromwith为前缀,而不是构造函数,并且没有set方法。例如:

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

可扩展

日期时间API在尽可能的情况下是可扩展的。例如,您可以定义自己的时间调整器和查询,或构建自己的日历系统。


上一页: 日期和时间概述
下一页: 日期和时间包