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

Interface Era

  • All Superinterfaces:
    TemporalAccessorTemporalAdjuster
    所有已知实现类:
    HijrahEraIsoEraJapaneseEraMinguoEraThaiBuddhistEra

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

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

    例如,泰国佛教日历系统将时间分为两个时期,在一个日期之前和之后。 相比之下,日历系统有一个统治每个皇帝的时代。

    的实例Era可以使用进行比较==运营商。

    实现要求:
    必须小心实现此接口,以确保其他类正常运行。 所有实现都必须是单例 - 最终的,不可变的和线程安全的。 建议尽可能使用枚举。
    从以下版本开始:
    1.8
    • 方法详细信息

      • getValue

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

        所有字段(包括eras)都具有关联的数值。 时代的数值的含义由年表根据这些原则确定:

        • 在1970-01-01(ISO)时代使用的时代具有值1。
        • 后来的时代有着更高的价值。
        • 早期的时代有着较低的价值,这可能是负面的。
        结果
        数字时代价值
      • isSupported

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

        这将检查是否可以查询指定字段的时代。 如果为false,则调用rangeget方法将引发异常。

        如果该字段是ChronoField则在此处实现查询。 ERA字段返回true。 所有其他ChronoField实例将返回false。

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

        Specified by:
        isSupported在界面 TemporalAccessor
        参数
        字段 - 要检查的字段,null返回false
        结果
        如果在这个时代支持该字段,则为true,否则为false
      • range

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

        范围对象表示字段的最小和最大有效值。 这个时代用于提高返回范围的准确性。 如果无法返回范围,因为不支持该字段或由于某些其他原因,将引发异常。

        如果该字段是ChronoField则在此处执行查询。 ERA字段返回范围。 所有其他ChronoField实例将抛出UnsupportedTemporalTypeException

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

        默认实现必须将ERA的范围从零返回到1,适用于两个时代的日历系统,例如ISO。

        Specified by:
        range在界面 TemporalAccessor
        参数
        字段 - 要查询范围的字段,而不是null
        结果
        字段的有效值范围,不为null
        异常
        DateTimeException - 如果无法获得该字段的范围
        UnsupportedTemporalTypeException - 如果不支持该装置
      • get

        default int get​(TemporalField field)
        获取此时代指定字段的值为int

        这会查询此时代的指定字段的值。 返回的值将始终在该字段的有效值范围内。 如果无法返回该值,因为不支持该字段或由于某些其他原因,将引发异常。

        如果该字段是ChronoField则在此处实现查询。 ERA字段返回时代的值。 所有其他ChronoField实例将抛出UnsupportedTemporalTypeException

        如果该字段是不是一个ChronoField ,则此方法的结果是通过调用获得TemporalField.getFrom(TemporalAccessor)传递this作为参数。 是否可以获得该值以及该值表示的值由该字段确定。

        Specified by:
        get在界面 TemporalAccessor
        参数
        字段 - 要获取的字段,而不是null
        结果
        该字段的值
        异常
        DateTimeException - 如果无法获取该字段的值或该值超出该字段的有效值范围
        UnsupportedTemporalTypeException - 如果不支持该字段或值的范围超过 int
        ArithmeticException - 如果发生数字溢出
      • getLong

        default long getLong​(TemporalField field)
        获取此时代指定字段的值为long

        这会查询此时代的指定字段的值。 如果无法返回该值,因为不支持该字段或由于某些其他原因,将引发异常。

        如果该字段是ChronoField则在此处执行查询。 ERA字段返回时代的值。 所有其他ChronoField实例将抛出UnsupportedTemporalTypeException

        如果该字段不是ChronoField ,则通过调用TemporalField.getFrom(TemporalAccessor)传递this作为参数来获得此方法的结果。 是否可以获得该值以及该值表示的值由该字段确定。

        Specified by:
        getLong在界面 TemporalAccessor
        参数
        字段 - 要获取的字段,而不是null
        结果
        该字段的值
        异常
        DateTimeException - 如果无法获得该字段的值
        UnsupportedTemporalTypeException - 如果不支持该字段
        ArithmeticException - 如果发生数字溢出
      • query

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

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

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

        Specified by:
        query接口 TemporalAccessor
        参数类型
        R - 结果的类型
        参数
        query - 要调用的查询,而不是null
        结果
        查询结果,可以返回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); 

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

        Specified by:
        adjustInto接口 TemporalAdjuster
        参数
        temporal - 要调整的目标对象,而不是null
        结果
        调整后的对象,不为空
        异常
        DateTimeException - 如果无法进行调整
        ArithmeticException - 如果发生数字溢出
      • getDisplayName

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

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

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

        API Note:
        此默认实现适用于大多数实现。
        参数
        style - 所需文本的样式,不为null
        locale - 要使用的语言环境,而不是null
        结果
        时代的文本价值,不是空的