@FunctionalInterface public interface TemporalAdjuster
调整器是修改时间物体的关键工具。 它们存在于外部化调整过程中,根据策略设计模式允许不同的方法。 示例可以是设置日期避免周末的调整器,或者将日期设置为月份的最后一天。
有使用的两种等价的方式TemporalAdjuster
。 第一个是直接在这个接口上调用方法。 二是使用Temporal.with(TemporalAdjuster)
:
// these two lines are equivalent, but the second approach is recommended
temporal = thisAdjuster.adjustInto(temporal);
temporal = temporal.with(thisAdjuster);
建议使用第二种方法, with(TemporalAdjuster)
,因为在代码中阅读更清楚。
TemporalAdjusters
类包含一组标准的调整器,可作为静态方法使用。 这些包括:
TemporalAdjusters
Modifier and Type | Method and Description |
---|---|
Temporal |
adjustInto(Temporal temporal)
调整指定的时间对象。
|
Temporal adjustInto(Temporal temporal)
这使用实现类中封装的逻辑来调整指定的时间对象。 示例可以是设置日期避免周末的调整器,或者将日期设置为月份的最后一天。
使用这种方法有两种等效的方法。 第一个是直接调用这个方法。 二是使用Temporal.with(TemporalAdjuster)
:
// these two lines are equivalent, but the second approach is recommended
temporal = thisAdjuster.adjustInto(temporal);
temporal = temporal.with(thisAdjuster);
建议使用第二种方法, with(TemporalAdjuster)
,因为在代码中阅读更清楚。
Temporal
上的任何方法查询时间对象并执行调整。
返回的对象必须具有与输入对象相同的可观察类型
输入对象不能更改。 相反,必须退还原件的调整副本。 这为不可变和可变的时间对象提供了相当的安全行为。
输入的时间对象可以在不同于ISO的日历系统中。 实现可以选择记录与其他日历系统的兼容性,或者通过querying the chronology
拒绝非ISO临时对象。
可以从多个并行线程调用此方法。 调用时必须是线程安全的。
temporal
- 要调整的时间对象,不为null
DateTimeException
- 如果不能进行调整
ArithmeticException
- 如果发生数字溢出