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

Interface Era

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


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

    大多数日历系统具有将时间线划分为两个时代的单个时期。 然而,一些日历系统具有多个时代,例如每个领导者统治的时代。 在所有情况下,这个时代在概念上是时间线上最大的一个部门。 每个年表定义了时代已知的Eras和一个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
        参数
        field - 要检查的字段,null返回false
        结果
        如果现场在这个时代得到支持,则为真,否则为假
      • range

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

        范围对象表示字段的最小和最大有效值。 这个时代用来提高返回范围的准确性。 如果不可能返回范围,因为该字段不受支持或出于某种其他原因,则抛出异常。

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

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

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

        Specified by:
        range在接口 TemporalAccessor
        参数
        field - 查询范围的字段,不为null
        结果
        字段的有效值的范围不为null
        异常
        DateTimeException - 如果无法获取字段的范围
        UnsupportedTemporalTypeException - 如果不支持本机
      • get

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

        这可以查询这个时代的指定字段的值。 返回的值将始终在该字段的值的有效范围内。 如果不可能返回值,因为该字段不受支持或出于某种其他原因,则抛出异常。

        如果该字段是一个ChronoField那么查询是在这里实现的。 ERA字段返回时代的价值。 所有其他ChronoField实例都会抛出一个UnsupportedTemporalTypeException

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

        Specified by:
        get在接口 TemporalAccessor
        参数
        field - 要获取的字段,不为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
        参数
        field - 要获取的字段,不为null
        结果
        该字段的值
        异常
        DateTimeException - 如果无法获取字段的值
        UnsupportedTemporalTypeException - 如果不支持该字段
        ArithmeticException - 如果发生数字溢出
      • query

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

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

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

        Specified by:
        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); 

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

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

        default String getDisplayName​(TextStyle style,
                                      Locale locale)
        获得这个时代的文字表现。

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

        如果没有发现文本映射,则返回numeric value

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