- 所有已知的子接口:
ChronoLocalDate,ChronoLocalDateTime<D>,Era
- 所有已知的实现类:
DayOfWeek,HijrahDate,HijrahEra,Instant,IsoEra,JapaneseDate,JapaneseEra,LocalDate,LocalDateTime,LocalTime,MinguoDate,MinguoEra,Month,MonthDay,OffsetDateTime,OffsetTime,ThaiBuddhistDate,ThaiBuddhistEra,Year,YearMonth,ZoneOffset
- 函数接口:
- 这是一个功能接口,因此可以用作 lambda 表达式或方法引用的赋值目标。
调整时间对象的策略。
调整器是修改时间对象的关键工具。根据策略设计模式,它们的存在是为了将调整过程外化,允许不同的方法。示例可能是将日期设置为避开周末的调整器,或者将日期设置为该月最后一天的调整器。
有两种等效的方式使用 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 类包含一组标准的调整器,可作为静态方法使用。这些包括:
- 找到一个月的第一天或最后一天
- 找到下个月的第一天
- 查找一年中的第一天或最后一天
- 寻找明年的第一天
- 查找一个月内的第一天或最后一天,例如“六月的第一个星期三”
- 查找下一个或前一个星期几,例如“下星期四”
- 实现要求:
- 此接口对实现的可变性没有任何限制,但强烈建议使用不变性。
- 自从:
- 1.8
- 参见:
-
方法总结
-
方法详情
-
adjustInto
调整指定的时间对象。这使用封装在实现类中的逻辑调整指定的时间对象。示例可能是将日期设置为避开周末的调整器,或者将日期设置为该月最后一天的调整器。
有两种等效的方法可以使用此方法。第一种是直接调用此方法。第二种是使用
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- 要调整的时间对象,不为空- 返回:
- 经过调整的相同可观察类型的对象,不为空
- 抛出:
DateTimeException- 如果无法进行调整ArithmeticException- 如果发生数字溢出
-