-
- All Superinterfaces:
-
TemporalAccessor,TemporalAdjuster
- 所有已知实现类:
-
HijrahEra,IsoEra,JapaneseEra,MinguoEra,ThaiBuddhistEra
public interface Era extends TemporalAccessor, TemporalAdjuster
时代的时代。大多数日历系统具有将时间线划分为两个时代的单个时期。 然而,一些日历系统具有多个时代,例如每个领导者统治的时代。 在所有情况下,这个时代在概念上是时间线上最大的一个部门。 每个年表定义了时代已知的Eras和一个
Chronology.eras来获得有效的时代。例如,泰国佛教日历系统将时间划分为两个时代,在单个日期之前和之后。 相比之下,日本的日历系统有一个统治帝国统治的时代。
可以使用
==运算符比较Era实例。- 实现要求:
- 该接口必须小心实施,以确保其他类正确运行。 所有的实现必须是单例 - 最终的,不可变的和线程安全的。 建议尽可能使用枚举。
- 从以下版本开始:
- 1.8
-
-
方法摘要
所有方法 接口方法 抽象方法 Default Methods Modifier and Type 方法 描述 default TemporaladjustInto(Temporal temporal)调整指定的时间对象与此对象具有相同的时代。default intget(TemporalField field)从该时代获取指定字段的值为int。default StringgetDisplayName(TextStyle style, Locale locale)获得这个时代的文字表现。default longgetLong(TemporalField field)从该时代获取指定字段的值为long。intgetValue()获取与年龄相关联的数值,按时间顺序定义。default booleanisSupported(TemporalField field)检查指定的字段是否受支持。default <R> Rquery(TemporalQuery<R> query)使用指定的查询查询此时代。default ValueRangerange(TemporalField field)获取指定字段的有效值的范围。
-
-
-
方法详细信息
-
getValue
int getValue()
获取与年龄相关联的数值,按时间顺序定义。 每个年表定义预定义的Eras和方法来列出年表的Eras。所有字段(包括时间)都具有关联的数字值。 时代数值的含义是按照这些原则的时间顺序决定的:
- 时代1970-01-01(ISO)使用的时代的价值为1。
- 后来的时代有更高的价值。
- 较早的时代已经有较低的值,这可能是负的。
- 结果
- 数字时代的价值
-
isSupported
default boolean isSupported(TemporalField field)
检查指定的字段是否受支持。这检查是否可以在指定的字段查询这个时代。 如果是false,那么调用
range和get方法会抛出异常。如果该字段是一个
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- 如果发生数字溢出
-
-