模块 java.base

类 JapaneseEra

java.lang.Object
java.time.chrono.JapaneseEra
所有已实现的接口:
Serializable , Era , TemporalAccessor , TemporalAdjuster

public final class JapaneseEra extends Object implements Era , Serializable
日本皇历系统中的一个纪元。

日本政府定义了每个纪元的正式名称和开始日期。时代是连续的,它们的日期范围不重叠,所以一个时代的结束日期总是在下一个时代开始日期的前一天。

Java SE 平台支持日本政府定义的所有时代,从明治时代开始。每个时代在平台中由一个整数值和一个名称标识。 of(int) valueOf(String) 方法可用于为每个时代获取 JapaneseEra 的单例实例。 values() 方法返回所有支持时代的单例实例。

为方便起见,此类声明了一些引用 values() 方法返回的单例实例的公共静态最终字段。

API 注意:
此类中声明的字段可能会随着时间的推移而演变,与 values() 方法的结果一致。但是,字段和单例实例之间不一定是 1:1 的对应关系。日本政府可能会宣布一个新纪元并定义其开始日期,但不会定义其正式名称。在这种情况下,代表新时代的单例实例可能会返回一个不稳定的名称,直到定义正式名称。开发人员在依赖与公共静态最终字段不对应的任何单例实例返回的名称时应谨慎行事。
实现要求:
这个类是不可变的和线程安全的。
自从:
1.8
参见:
  • 字段详细信息

    • MEIJI

      public static final JapaneseEra  MEIJI
      “明治”时代 (1868-01-01 - 1912-07-29) 的单例实例,值为 -1。
    • TAISHO

      public static final JapaneseEra  TAISHO
      “大正”时代 (1912-07-30 - 1926-12-24) 的单例实例,值为 0。
    • SHOWA

      public static final JapaneseEra  SHOWA
      “昭和”时代 (1926-12-25 - 1989-01-07) 的单例实例,其值为 1。
    • HEISEI

      public static final JapaneseEra  HEISEI
      'Heisei' 时代 (1989-01-08 - 2019-04-30) 的单例实例,其值为 2。
    • REIWA

      public static final JapaneseEra  REIWA
      “Reiwa”时代 (2019-05-01 - ) 的单例实例,其值为 3。该时代的结束日期未指定,除非日本政府对其进行定义。
      自从:
      13
  • 方法详情

    • of

      public static JapaneseEra  of(int japaneseEra)
      int 值获取 JapaneseEra 的实例。
      • 1 与“昭和”时代相关联,因为它包含 1970-01-01(ISO 日历系统)。
      • -10 分别与两个较早的时代相关联,即明治和大正。
      • 大于 1 的值与较晚的时代相关联,从平成 (2) 开始。

      values() 方法返回的每个 JapaneseEra 实例都有一个 int 值(可通过此方法接受的 Era.getValue() 获得。

      参数:
      japaneseEra - 代表的时代
      返回:
      JapaneseEra 单例,不为空
      抛出:
      DateTimeException - 如果值无效
    • valueOf

      public static JapaneseEra  valueOf(String  japaneseEra)
      返回具有名称的 JapaneseEra

      该字符串必须与纪元的名称完全匹配。 (不允许使用无关的空白字符。)

      有效纪元名称是从 values() 返回的纪元名称。

      参数:
      japaneseEra - 日本纪元名称;非空
      返回:
      JapaneseEra 单例,永不为空
      抛出:
      IllegalArgumentException - 如果没有具有指定名称的 JapaneseEra
    • values

      public static JapaneseEra [] values()
      返回一组 JapaneseEras。该数组可能包含日本政府定义的纪元,超出已知的纪元单例。

      此方法可用于迭代 JapaneseEras,如下所示:

       for (JapaneseEra c : JapaneseEra.values())
         System.out.println(c);
       
      返回:
      一组日本纪元
    • getDisplayName

      public String  getDisplayName(TextStyle  style, Locale  locale)
      获取这个时代的文本表示。

      这将返回用于标识时代的文本名称,适合呈现给用户。参数控制返回文本的样式和locale。

      如果未找到文本映射,则返回 numeric value

      指定者:
      getDisplayName 在接口 Era
      参数:
      style - 所需文本的样式,不为空
      locale - 要使用的locale,不为空
      返回:
      时代的文本值,不为空
    • getValue

      public int getValue()
      获取数字纪元 int 值。

      包含 1970-01-01(ISO 日历系统)的 SHOWA 纪元的值为 1。之后的纪元从 2 (HEISEI ) 开始编号。更早的时代编号为 0 (TAISHO ), -1 (MEIJI ))。

      指定者:
      getValue 在接口 Era
      返回:
      时代值
    • range

      public ValueRange  range(TemporalField  field)
      获取指定字段的有效值范围。

      范围对象表示字段的最小和最大有效值。这个纪元用于增强返回范围的准确性。如果由于不支持该字段或其他原因而无法返回范围,则会抛出异常。

      如果该字段是一个ChronoField 那么查询就在这里实现。 ERA 字段返回范围。所有其他 ChronoField 实例将抛出 UnsupportedTemporalTypeException

      如果该字段不是 ChronoField ,则通过调用 TemporalField.rangeRefinedBy(TemporalAccessor) 传递 this 作为参数来获得此方法的结果。能否获取范围由字段决定。

      由于日本日历系统的性质,有效日本纪元的范围可能会随时间变化。

      指定者:
      range 在接口 Era
      指定者:
      range 在接口 TemporalAccessor
      参数:
      field - 查询范围的字段,不为空
      返回:
      该字段的有效值范围,不为空
      抛出:
      DateTimeException - 如果无法获得该字段的范围
      UnsupportedTemporalTypeException - 如果不支持该单元