public interface Era extends TemporalAccessor, TemporalAdjuster
大多数日历系统具有将时间线划分为两个时代的单个时期。 然而,一些日历系统具有多个时代,例如每个领导者统治的时代。 在所有情况下,这个时代在概念上是时间线上最大的一个部门。 每个年表都定义了时代已知的Eras和一个Chronology.eras
来获得有效的时代。
例如,泰国佛教日历系统将时间划分为两个时代,在单个日期之前和之后。 相比之下,日本的日历系统有一个统治帝国统治的时代。
的实例Era
可以使用进行比较==
运营商。
Modifier and Type | Method and Description |
---|---|
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)
获取指定字段的有效值的范围。
|
int getValue()
所有字段(包括时间)都具有关联的数字值。 时代数值的含义是按照这些原则的时间顺序决定的:
default boolean isSupported(TemporalField field)
这检查是否可以在指定的字段查询这个时代。 如果是false,那么调用range
和get
方法会抛出异常。
如果字段是ChronoField
,那么查询是在这里实现的。 ERA
字段返回true。 所有其他ChronoField
实例将返回false。
如果该字段不是ChronoField
,则通过调用TemporalField.isSupportedBy(TemporalAccessor)
this
作为参数的this
获得该方法的结果。 字段是否受支持由字段决定。
isSupported
在接口
TemporalAccessor
field
- 要检查的字段,null返回false
default ValueRange range(TemporalField field)
范围对象表示字段的最小和最大有效值。 这个时代用来提高返回范围的准确性。 如果不可能返回范围,因为该字段不受支持或出于某种其他原因,则抛出异常。
如果该字段是ChronoField
,那么查询是在这里实现的。 ERA
字段返回范围。 所有其他ChronoField
实例将抛出一个UnsupportedTemporalTypeException
。
如果该字段是不是一个ChronoField
,则此方法的结果是通过调用获得TemporalField.rangeRefinedBy(TemporalAccessor)
传递this
作为参数。 是否可以获得范围由字段确定。
默认实现必须将一个ERA
从一个范围返回到一个,适用于两个时代的日历系统,如ISO。
range
在接口
TemporalAccessor
field
- 查询范围的字段,不为null
DateTimeException
- 如果无法获得该字段的范围
UnsupportedTemporalTypeException
- 如果不支持本机
default int get(TemporalField field)
int
。
这可以查询这个时代的指定字段的值。 返回的值将始终在该字段的值的有效范围内。 如果不可能返回值,因为该字段不受支持或出于某种其他原因,则抛出异常。
如果该字段是ChronoField
,那么查询是在这里实现的。 ERA
字段返回时代的价值。 所有其他ChronoField
实例将抛出一个UnsupportedTemporalTypeException
。
如果该字段是不是一个ChronoField
,则此方法的结果是通过调用获得TemporalField.getFrom(TemporalAccessor)
传递this
作为参数。 该值是否可以获得,该值代表什么值由该字段决定。
get
在接口
TemporalAccessor
field
- 要获取的字段,不为null
DateTimeException
- 如果无法获取字段的值,或者该值超出了该字段的有效值的范围
UnsupportedTemporalTypeException
- 如果该字段不受支持或值的范围超过
int
ArithmeticException
- 如果发生数字溢出
default long getLong(TemporalField field)
long
。
这可以查询这个时代的指定字段的值。 如果不可能返回值,因为该字段不受支持或出于某种其他原因,则抛出异常。
如果字段是ChronoField
,那么查询是在这里实现的。 ERA
字段返回时代的价值。 所有其他ChronoField
实例将抛出一个UnsupportedTemporalTypeException
。
如果该字段是不是一个ChronoField
,则此方法的结果是通过调用获得TemporalField.getFrom(TemporalAccessor)
传递this
作为参数。 该值是否可以获得,该值代表什么值由该字段决定。
getLong
在界面
TemporalAccessor
field
- 要获取的字段,不为null
DateTimeException
- 如果无法获取该字段的值
UnsupportedTemporalTypeException
- 如果该字段不被支持
ArithmeticException
- 如果发生数字溢出
default <R> R query(TemporalQuery<R> query)
这使用指定的查询策略对象查询这个时代。 TemporalQuery
对象定义了用于获取结果的逻辑。 阅读查询的文档,以了解该方法的结果。
该方法的结果是通过调用指定的查询this
作为参数的TemporalQuery.queryFrom(TemporalAccessor)
方法获得的。
query
在界面
TemporalAccessor
R
- 结果的类型
query
- 要调用的查询,不为null
DateTimeException
- 如果无法查询(由查询定义)
ArithmeticException
- 如果发生数字溢出(由查询定义)
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
- 要调整的目标对象,不为null
DateTimeException
- 如果不能进行调整
ArithmeticException
- 如果发生数字溢出