-
- 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 Temporal
adjustInto(Temporal temporal)
调整指定的时间对象与此对象具有相同的时代。default int
get(TemporalField field)
从该时代获取指定字段的值为int
。default String
getDisplayName(TextStyle style, Locale locale)
获得这个时代的文字表现。default long
getLong(TemporalField field)
从该时代获取指定字段的值为long
。int
getValue()
获取与年龄相关联的数值,按时间顺序定义。default boolean
isSupported(TemporalField field)
检查指定的字段是否受支持。default <R> R
query(TemporalQuery<R> query)
使用指定的查询查询此时代。default ValueRange
range(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
- 如果发生数字溢出
-
-