- 所有已实现的接口:
-
Serializable
,Era
,TemporalAccessor
,TemporalAdjuster
日本政府定义了每个纪元的官方名称和开始日期。各纪元是连续的,它们的日期范围不重叠,因此一纪元的结束日期总是下一纪元的开始日期的前一天。
Java SE平台支持日本政府定义的所有纪元,从明治纪元开始。每个纪元在平台上由一个整数值和一个名称标识。可以使用of(int)
和valueOf(String)
方法获取每个纪元的JapaneseEra
的单例实例。values()
方法返回所有支持的纪元的单例实例。
为方便起见,此类声明了一些公共静态最终字段,这些字段引用由values()
方法返回的单例实例。
- API注释:
-
此类中声明的字段可能随时间发展而变化,与
values()
方法的结果一致。但是,字段与单例实例之间不一定是一对一的对应关系。日本政府可能宣布一个新的纪元并定义其开始日期,但没有官方名称。在这种情况下,代表新纪元的单例实例可能返回一个在官方名称定义之前不稳定的名称。开发人员在依赖不对应于公共静态最终字段的任何单例实例返回的名称时应谨慎。 - 实现要求:
- 此类是不可变的且线程安全的。
- 自版本:
- 1.8
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final JapaneseEra
'平成'纪元(1989-01-08 - 2019-04-30)的单例实例,其值为2。static final JapaneseEra
'明治'纪元(1868-01-01 - 1912-07-29)的单例实例,其值为-1。static final JapaneseEra
'令和'纪元(2019-05-01 - )的单例实例,其值为3。static final JapaneseEra
'昭和'纪元(1926-12-25 - 1989-01-07)的单例实例,其值为1。static final JapaneseEra
'大正'纪元(1912-07-30 - 1926-12-24)的单例实例,其值为0。 -
Method Summary
Modifier and TypeMethodDescriptiongetDisplayName
(TextStyle style, Locale locale) 获取此纪元的文本表示。int
getValue()
获取数字纪元int
值。static JapaneseEra
of
(int japaneseEra) 从int
值获取JapaneseEra
的实例。range
(TemporalField field) 获取指定字段的有效值范围。static JapaneseEra
返回具有名称的JapaneseEra
。static JapaneseEra[]
values()
返回一个日本纪元数组。Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods declared in interface java.time.chrono.Era
adjustInto, get, getLong, isSupported, query
-
Field Details
-
MEIJI
'明治'纪元(1868-01-01 - 1912-07-29)的单例实例,其值为-1。 -
TAISHO
'大正'纪元(1912-07-30 - 1926-12-24)的单例实例,其值为0。 -
SHOWA
'昭和'纪元(1926-12-25 - 1989-01-07)的单例实例,其值为1。 -
HEISEI
'平成'纪元(1989-01-08 - 2019-04-30)的单例实例,其值为2。 -
REIWA
'令和'纪元(2019-05-01 - )的单例实例,其值为3。该纪元的结束日期未指定,除非日本政府定义。- 自版本:
- 13
-
-
Method Details
-
of
从int
值获取JapaneseEra
的实例。- 值
1
与'昭和'纪元相关,因为它包含1970-01-01(ISO日历系统)。 - 值
-1
和0
与两个早期纪元相关,分别是明治和大正。 - 大于
1
的值与后续纪元相关,从平成(2
)开始。
从
values()
方法返回的每个JapaneseEra
实例都有一个int值(可通过Era.getValue()
获得),该值可被此方法接受。- 参数:
-
japaneseEra
- 要表示的纪元 - 返回:
-
JapaneseEra
单例,非空 - 抛出:
-
DateTimeException
- 如果值无效
- 值
-
valueOf
- 参数:
-
japaneseEra
- 日本纪元名称;非空 - 返回:
-
JapaneseEra
单例,永不为空 - 抛出:
-
IllegalArgumentException
- 如果没有指定名称的日本纪元
-
values
返回一个日本纪元数组。该数组可能包含日本政府定义的超出已知纪元单例的纪元。此方法可用于按以下方式迭代日本纪元:
for (JapaneseEra c : JapaneseEra.values()) System.out.println(c);
- 返回:
- 一个日本纪元数组
-
getDisplayName
获取此纪元的文本表示。返回用于标识纪元的文本名称,适合向用户展示。参数控制返回文本的样式和区域设置。
如果找不到文本映射,则返回
数字值
。- 指定者:
-
getDisplayName
在接口Era
中 - 参数:
-
style
- 所需文本的样式,非空 -
locale
- 要使用的区域设置,非空 - 返回:
- 纪元的文本值,非空
-
getValue
public int getValue()获取数字纪元int
值。包含1970-01-01(ISO日历系统)的
SHOWA
纪元的值为1。后续纪元从2(HEISEI
)开始编号。早期纪元分别编号为0(TAISHO
)、-1(MEIJI
)。 -
range
获取指定字段的有效值范围。范围对象表示字段的最小和最大有效值。此纪元用于增强返回范围的准确性。如果无法返回范围,因为不支持该字段或出于其他原因,将抛出异常。
如果字段是一个
ChronoField
,则在此处实现查询。ERA
字段返回范围。所有其他ChronoField
实例将抛出UnsupportedTemporalTypeException
异常。如果字段不是
ChronoField
,则通过调用TemporalField.rangeRefinedBy(TemporalAccessor)
并将this
作为参数来获取此方法的结果。字段决定是否可以获取范围。由于日本日历系统的性质,有效的日本纪元范围可能随时间而变化。
- 指定者:
-
range
在接口Era
中 - 指定者:
-
range
在接口TemporalAccessor
中 - 参数:
-
field
- 要查询范围的字段,非空 - 返回:
- 字段的有效值范围,非空
- 抛出:
-
DateTimeException
- 如果无法获取字段的范围 -
UnsupportedTemporalTypeException
- 如果不支持该单位
-