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