模块 java.base

接口 Era

所有父级接口:
TemporalAccessor , TemporalAdjuster
所有已知的实现类:
HijrahEra , IsoEra , JapaneseEra , MinguoEra , ThaiBuddhistEra

public interface Era extends TemporalAccessor , TemporalAdjuster
时间线时代。

大多数日历系统都有一个纪元,将时间线分为两个纪元。然而,一些日历系统有多个纪元,例如每个领导人的统治时期。在所有情况下,时代在概念上都是时间线的最大划分。每个年表都定义了已知纪元的纪元和一个 Chronology.eras 来获取有效纪元。

例如,泰国佛历系统将时间分为两个纪元,一个日期之前和之后。相比之下,日本的历法系统为每位天皇的在位指定一个纪元。

Era 的实例可以使用 == 运算符进行比较。

实现要求:
必须小心实现此接口以确保其他类正确运行。所有实现都必须是单例的——最终的、不可变的和线程安全的。建议尽可能使用枚举。
自从:
1.8
  • 方法详情

    • getValue

      int getValue()
      获取与年表定义的纪元关联的数值。每个年表都定义了预定义的时代和列出年表时代的方法。

      所有字段,包括时代,都有一个关联的数值。纪元数值的含义由年表根据以下原则确定:

      • 在纪元 1970-01-01 (ISO) 中使用的纪元值为 1。
      • 后来的时代依次具有更高的值。
      • 较早的时代具有顺序较低的值,这可能是负数。
      返回:
      数字纪元值
    • isSupported

      default boolean isSupported(TemporalField  field)
      检查是否支持指定的字段。

      这将检查是否可以针对指定字段查询此纪元。如果为 false,则调用 range get 方法将抛出异常。

      如果该字段是一个ChronoField 那么查询就在这里实现。 ERA 字段返回 true。所有其他 ChronoField 实例将返回 false。

      如果该字段不是 ChronoField ,则通过调用 TemporalField.isSupportedBy(TemporalAccessor) 传递 this 作为参数来获得此方法的结果。字段是否支持由字段决定。

      指定者:
      isSupported 在接口 TemporalAccessor
      参数:
      field - 要检查的字段,null 返回 false
      返回:
      如果这个时代支持该字段,则为 true,否则为 false
    • range

      default ValueRange  range(TemporalField  field)
      获取指定字段的有效值范围。

      范围对象表示字段的最小和最大有效值。这个纪元用于增强返回范围的准确性。如果由于不支持该字段或其他原因而无法返回范围,则会抛出异常。

      如果该字段是一个ChronoField 那么查询就在这里实现。 ERA 字段返回范围。所有其他 ChronoField 实例将抛出 UnsupportedTemporalTypeException

      如果该字段不是 ChronoField ,则通过调用 TemporalField.rangeRefinedBy(TemporalAccessor) 传递 this 作为参数来获得此方法的结果。能否获取范围由字段决定。

      默认实现必须为 ERA 返回从零到一的范围,适用于两个纪元日历系统,例如 ISO。

      指定者:
      range 在接口 TemporalAccessor
      参数:
      field - 查询范围的字段,不为空
      返回:
      该字段的有效值范围,不为空
      抛出:
      DateTimeException - 如果无法获得该字段的范围
      UnsupportedTemporalTypeException - 如果不支持该单元
    • get

      default int get(TemporalField  field)
      从这个时代获取指定字段的值作为 int

      这将查询此纪元以获取指定字段的值。返回值将始终在该字段的有效值范围内。如果由于不支持该字段或其他原因而无法返回该值,则会抛出异常。

      如果该字段是一个ChronoField 那么查询就在这里实现。 ERA 字段返回纪元的值。所有其他 ChronoField 实例将抛出 UnsupportedTemporalTypeException

      如果该字段不是 ChronoField ,则通过调用 TemporalField.getFrom(TemporalAccessor) 传递 this 作为参数来获得此方法的结果。能否获取到该值,该值代表什么,由字段决定。

      指定者:
      get 在接口 TemporalAccessor
      参数:
      field - 要获取的字段,不为空
      返回:
      该字段的值
      抛出:
      DateTimeException - 如果无法获取该字段的值或该值超出该字段的有效值范围
      UnsupportedTemporalTypeException - 如果不支持该字段或值的范围超过 int
      ArithmeticException - 如果发生数字溢出
    • getLong

      default long getLong(TemporalField  field)
      从这个时代获取指定字段的值作为 long

      这将查询此纪元以获取指定字段的值。如果由于不支持该字段或其他原因而无法返回该值,则会抛出异常。

      如果该字段是一个ChronoField 那么查询就在这里实现。 ERA 字段返回纪元的值。所有其他 ChronoField 实例将抛出 UnsupportedTemporalTypeException

      如果该字段不是 ChronoField ,则通过调用 TemporalField.getFrom(TemporalAccessor) 传递 this 作为参数来获得此方法的结果。能否获取到该值,该值代表什么,由字段决定。

      指定者:
      getLong 在接口 TemporalAccessor
      参数:
      field - 要获取的字段,不为空
      返回:
      该字段的值
      抛出:
      DateTimeException - 如果无法获得该字段的值
      UnsupportedTemporalTypeException - 如果不支持该字段
      ArithmeticException - 如果发生数字溢出
    • query

      default <R> R query(TemporalQuery <R> query)
      使用指定的查询查询此时代。

      这使用指定的查询策略对象查询此时代。 TemporalQuery 对象定义了用于获取结果的逻辑。阅读查询文档以了解此方法的结果。

      此方法的结果是通过对指定查询调用 TemporalQuery.queryFrom(TemporalAccessor) 方法并将 this 作为参数传递来获得的。

      指定者:
      query 在接口 TemporalAccessor
      类型参数:
      R - 结果的类型
      参数:
      query - 要调用的查询,不为空
      返回:
      查询结果,可能返回null(由查询定义)
      抛出:
      DateTimeException - 如果无法查询(由查询定义)
      ArithmeticException - 如果发生数字溢出(由查询定义)
    • adjustInto

      default Temporal  adjustInto(Temporal  temporal)
      将指定的时间对象调整为与此对象具有相同的时代。

      这将返回一个与输入相同的可观察类型的时间对象,时代更改为与此相同。

      调整相当于使用Temporal.with(TemporalField, long) 传递ChronoField.ERA 作为字段。

      在大多数情况下,使用 Temporal.with(TemporalAdjuster) 反转调用模式会更清楚:

        // these two lines are equivalent, but the second approach is recommended
        temporal = thisEra.adjustInto(temporal);
        temporal = temporal.with(thisEra);
       

      此实例是不可变的,不受此方法调用的影响。

      指定者:
      adjustInto 在接口 TemporalAdjuster
      参数:
      temporal - 要调整的目标对象,不为空
      返回:
      调整后的对象,不为空
      抛出:
      DateTimeException - 如果无法进行调整
      ArithmeticException - 如果发生数字溢出
    • getDisplayName

      default String  getDisplayName(TextStyle  style, Locale  locale)
      获取这个时代的文本表示。

      这将返回用于标识时代的文本名称,适合呈现给用户。参数控制返回文本的样式和locale。

      如果未找到文本映射,则返回 numeric value

      API 注意:
      此默认实现适用于大多数实现。
      参数:
      style - 所需文本的样式,不为空
      locale - 要使用的locale,不为空
      返回:
      时代的文本值,不为空