-
- All Known Subinterfaces:
-
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
- Functional Interface:
- 这是一个功能接口,因此可以用作lambda表达式或方法引用的赋值目标。
@FunctionalInterfacepublic 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
类包含一组标准的调整器,可用作静态方法。 这些包括:- 找到该月的第一天或最后一天
- 找到下个月的第一天
- 找到一年中的第一天或最后一天
- 找到明年的第一天
- 在一个月内找到第一天或最后一天,例如“六月的第一个星期三”
- 找到下一个或上一个星期的某一天,例如“下周四”
- 实现要求:
- 此接口对实现的可变性没有任何限制,但强烈建议使用不变性。
- 从以下版本开始:
- 1.8
- 另请参见:
-
TemporalAdjusters
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 Temporal
adjustInto(Temporal temporal)
调整指定的时态对象。
-
-
-
方法详细信息
-
adjustInto
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 - 结果
- 一个具有相同可观察类型的对象,并进行调整,而不是null
- 异常
-
DateTimeException
- 如果无法进行调整 -
ArithmeticException
- 如果发生数字溢出
-
-