-
- All Superinterfaces:
-
TemporalAccessor
,TemporalAdjuster
- 所有已知实现类:
-
HijrahEra
,IsoEra
,JapaneseEra
,MinguoEra
,ThaiBuddhistEra
public interface Era extends TemporalAccessor, TemporalAdjuster
时间线的时代。大多数日历系统都有一个纪元,将时间线划分为两个时代。 但是,一些日历系统有多个时代,例如每个领导者的统治时期。 在所有情况下,时代在概念上是时间线的最大分支。 每个年代表定义了已知时代的Era和获得有效时代的
Chronology.eras
。例如,泰国佛教日历系统将时间分为两个时期,在一个日期之前和之后。 相比之下,日历系统有一个统治每个皇帝的时代。
的实例
Era
可以使用进行比较==
运营商。- 实现要求:
- 必须小心实现此接口,以确保其他类正常运行。 所有实现都必须是单例 - 最终的,不可变的和线程安全的。 建议尽可能使用枚举。
- 从以下版本开始:
- 1.8
-
-
方法摘要
所有方法 实例方法 抽象方法 Default Methods 变量和类型 方法 描述 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
- 参数
-
字段
- 要检查的字段,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
- 如果发生数字溢出
-
-