Module  java.base
软件包  java.time.temporal

Interface TemporalAdjuster

  • All Known Subinterfaces:
    ChronoLocalDateChronoLocalDateTime<D>Era
    所有已知实现类:
    DayOfWeekHijrahDateHijrahEraInstantIsoEraJapaneseDateJapaneseEraLocalDateLocalDateTimeLocalTimeMinguoDateMinguoEraMonthMonthDayOffsetDateTimeOffsetTimeThaiBuddhistDateThaiBuddhistEraYearYearMonthZoneOffset
    Functional Interface:
    这是一个功能界面,因此可以用作lambda表达式或方法引用的赋值对象。


    @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类包含一组标准的调整器,可作为静态方法使用。 这些包括:

    • 找到本月的第一天或最后一天
    • 找到下个月的第一天
    • 找到一年中的第一个或最后一天
    • 找到明年的第一天
    • 在一个月内找到第一个或最后一个星期,例如“6月的第一个星期三”
    • 找到下一个或前几个星期,例如“下周四”
    实现要求:
    此接口对实现的可变性没有任何限制,但是强烈建议不变性。
    从以下版本开始:
    1.8
    另请参见:
    TemporalAdjusters
    • 方法详细信息

      • 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
        异常
        DateTimeException - 如果不能进行调整
        ArithmeticException - 如果发生数字溢出