模块  java.base
软件包  java.time.zone

Class ZoneOffsetTransitionRule

  • 实现的所有接口
    Serializable

    public final class ZoneOffsetTransitionRuleextends Objectimplements Serializable
    表达如何创建转换的规则。

    该类允许表达用于识别未来转换的规则。 规则可能以多种形式编写:

    • 3月16日
    • 3月16日或之后的星期日
    • 3月16日或之前的星期日
    • 二月的最后一个星期天
    可以表达和查询这些不同的规则类型。
    实现要求:
    这个类是不可变的和线程安全的。
    从以下版本开始:
    1.8
    另请参见:
    Serialized Form
    • 方法详细信息

      • of

        public static ZoneOffsetTransitionRule of​(Month month,                                          int dayOfMonthIndicator,                                          DayOfWeek dayOfWeek,                                          LocalTime time,                                          boolean timeEndOfDay,                                          ZoneOffsetTransitionRule.TimeDefinition timeDefnition,                                          ZoneOffset standardOffset,                                          ZoneOffset offsetBefore,                                          ZoneOffset offsetAfter)
        获取定义年度规则的实例以创建两个偏移之间的转换。

        应用程序通常应从ZoneRules获取实例。 本工厂仅供创建ZoneRules时使用。

        参数
        month - 转换周第一天的月份日,而不是空
        dayOfMonthIndicator - 切换周的当天 - 如果一周是当天或更晚,则为正数,如果该周为该日或更早,则为负数,从该月的最后一天开始计算,从-28到31不包括0
        dayOfWeek - 所需的星期几,如果不应更改月 - 日,则为null
        time - 'before'偏移中的转换时间,不为null
        timeEndOfDay - 是否在一天结束的时间是午夜
        timeDefnition - 如何解读转换
        standardOffset - 切换时的标准偏移量,不为空
        offsetBefore - 转换前的偏移量,不为空
        offsetAfter - 切换后的偏移量,不为空
        结果
        规则,不是空的
        异常
        IllegalArgumentException - 如果月中指示日期无效
        IllegalArgumentException - 如果时间不是午夜,则天结束标志为真
        IllegalArgumentException - 如果 time.getNano()返回非零值
      • getMonth

        public Month getMonth()
        获取转换的月份。

        如果规则定义了确切日期,那么月份就是该日期的月份。

        如果规则定义了可能发生转换的周,那么月份(如果是转换的最早或最晚可能日期的月份)。

        结果
        过渡的月份,不是空的
      • getDayOfMonthIndicator

        public int getDayOfMonthIndicator()
        获取过渡日期的指标。

        如果规则定义了确切的日期,则该日期是该日期的月份。

        如果规则定义了可能发生转换的周,则该日定义转换周结束的开始。

        如果值为正,则表示正常的日期,并且是转换可能的最早可能日期。 该日期可以指2月29日,应该在非闰年处理为3月1日。

        如果该值为负,则表示从月末返回的天数,其中-1是该月的最后一天。 在这种情况下,标识的日期是转换可能的最新可能日期。

        结果
        日期指标,从-28到31,不包括0
      • getDayOfWeek

        public DayOfWeek getDayOfWeek()
        获取转换的星期几。

        如果规则定义了确切的日期,则返回null。

        如果规则定义可能发生转换的周,则此方法返回将调整月日的星期几。 如果当天是积极的,那么调整是晚些时候。 如果当天是负数,则调整时间较早。

        结果
        转换发生的星期几,如果规则定义了确切的日期,则为null
      • getLocalTime

        public LocalTime getLocalTime()
        获取必须使用isMidnightEndOfDay()检查的转换的本地时间。

        使用时间定义将时间转换为瞬间。

        结果
        转换的当地时间,不为空
      • isMidnightEndOfDay

        public boolean isMidnightEndOfDay()
        过渡当地时间是在一天结束的午夜。

        转换可以表示为在24:00发生。

        结果
        当地的午夜时间是在当天的开始还是结束
      • getTimeDefinition

        public ZoneOffsetTransitionRule.TimeDefinition getTimeDefinition()
        获取时间定义,指定如何将时间转换为瞬间。

        可以使用标准偏移,墙偏移或UTC将本地时间转换为瞬间。

        结果
        时间定义,不为空
      • getStandardOffset

        public ZoneOffset getStandardOffset()
        获取转换时生效的标准偏移量。
        结果
        标准偏移量,不为空
      • getOffsetBefore

        public ZoneOffset getOffsetBefore()
        获取转换前的偏移量。
        结果
        之前的偏移量,不是空的
      • getOffsetAfter

        public ZoneOffset getOffsetAfter()
        获取转换后的偏移量。
        结果
        之后的偏移,不是null
      • createTransition

        public ZoneOffsetTransition createTransition​(int year)
        创建指定年份的转换实例。

        使用ISO-8601年表进行计算。

        参数
        year - 创建转换的年份,而不是null
        结果
        转换实例,不是null
      • equals

        public boolean equals​(Object otherRule)
        检查此对象是否等于另一个。

        比较对象的整个状态。

        重写:
        equals在课程 Object
        参数
        otherRule - 要比较的另一个对象,null返回false
        结果
        如果相等则为真
        另请参见:
        Object.hashCode()HashMap
      • toString

        public String toString()
        返回描述此对象的字符串。
        重写:
        toString in class Object
        结果
        a string for debugging, not null