Module java.base
Package java.time.zone

Class ZoneOffsetTransitionRule

java.lang.Object
java.time.zone.ZoneOffsetTransitionRule
所有已实现的接口:
Serializable

public final class ZoneOffsetTransitionRule extends Object implements Serializable
表达如何创建转换的规则。

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

  • 3月16日
  • 3月16日后的星期日
  • 3月16日前的星期日
  • 2月的最后一个星期日
这些不同的规则类型可以被表达和查询。
实现要求:
此类是不可变的且线程安全的。
自版本:
1.8
参见:
  • Method Details

    • of

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

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

      参数:
      month - 第一个切换周的月份日期,不能为空
      dayOfMonthIndicator - 切换周的月份日期,如果该周是该天或之后,则为正,如果该周是该天或之前,则为负,从月底开始计算,从-28到31,不包括0
      dayOfWeek - 所需的星期几,如果月份日期不应更改,则为空
      time - 'before'偏移的切换时间,不能为空
      timeEndOfDay - 时间是否午夜结束
      timeDefinition - 如何解释切换
      standardOffset - 切换时生效的标准偏移量,不能为空
      offsetBefore - 切换前的偏移量,不能为空
      offsetAfter - 切换后的偏移量,不能为空
      返回:
      规则,不能为空
      抛出:
      IllegalArgumentException - 如果月份指示器无效
      IllegalArgumentException - 如果时间不是午夜时返回true
      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()
      获取转换后的偏移量。
      返回:
      后偏移量,不能为空
    • createTransition

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

      计算使用ISO-8601年表。

      参数:
      year - 要为其创建转换的年份,不能为空
      返回:
      转换实例,不能为空
    • equals

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

      将对象的整个状态进行比较。

      覆盖:
      equals 在类 Object
      参数:
      otherRule - 要比较的其他对象,null返回false
      返回:
      如果相等则为true
      参见:
    • hashCode

      public int hashCode()
      返回适当的哈希码。
      覆盖:
      hashCode 在类 Object
      返回:
      哈希码
      参见:
    • toString

      public String toString()
      返回描述此对象的字符串。
      覆盖:
      toString 在类 Object
      返回:
      用于调试的字符串,不能为空