広告

Java : Era (紀元) - API使用例

Era (Java SE 21 & JDK 21) の使い方まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。


概要

時系列の紀元。

クラス構成

Era は、紀元を表すインタフェースです。

主なサブクラスに、

  • IsoEra : ISO暦体系 (西暦、紀元前)
  • JapaneseEra : 和暦 (平成、令和など)

があります。

final var locale = Locale.getDefault();
System.out.println(locale.toLanguageTag()); // ja-JP

{
    final Era era = IsoEra.CE;
    System.out.println(era.getValue()); // 1

    final var name = era.getDisplayName(TextStyle.FULL, locale);
    System.out.println(name); // 西暦
}
{
    final Era era = IsoEra.BCE;
    System.out.println(era.getValue()); // 0

    final var name = era.getDisplayName(TextStyle.FULL, locale);
    System.out.println(name); // 紀元前
}
{
    final Era era = JapaneseEra.REIWA;
    System.out.println(era.getValue()); // 3

    final var name = era.getDisplayName(TextStyle.FULL, locale);
    System.out.println(name); // 令和
}
final var date1 = LocalDate.of(2100, 12, 31);
System.out.println(date1); // 2100-12-31
System.out.println(date1.getEra()); // CE

final var date2 = LocalDate.of(-99, 1, 2);
System.out.println(date2); // -0099-01-02
System.out.println(date2.getEra()); // BCE
final var date = LocalDate.of(1993, 1, 2);
System.out.println(date); // 1993-01-02

final var japaneseDate = JapaneseChronology.INSTANCE.date(date);
System.out.println(japaneseDate); // Japanese Heisei 5-01-02
System.out.println(japaneseDate.getEra()); // Heisei

メソッド

default Temporal adjustInto (Temporal temporal)

指定された時間的オブジェクトをこのオブジェクトと同じ紀元になるように調整します。

final Era era = IsoEra.BCE;
System.out.println(era); // BCE

final var date = LocalDate.of(2100, 2, 3);
System.out.println(date); // 2100-02-03

final var ret = era.adjustInto(date);
System.out.println(ret); // -2099-02-03

default int get (TemporalField field)

この紀元から指定されたフィールドの値をintとして取得します。

final Era era = IsoEra.CE;
System.out.println(era); // CE

System.out.println(era.get(ChronoField.ERA)); // 1
final Era era = IsoEra.BCE;
System.out.println(era); // BCE

System.out.println(era.get(ChronoField.ERA)); // 0

default String getDisplayName (TextStyle style, Locale locale)

この紀元のテキスト表現を取得します。

final Era era = IsoEra.CE;
System.out.println(era); // CE

final var name1 = era.getDisplayName(TextStyle.FULL, Locale.US);
System.out.println(name1); // Anno Domini

final var name2 = era.getDisplayName(TextStyle.FULL, Locale.JAPAN);
System.out.println(name2); // 西暦
final Era era = IsoEra.BCE;
System.out.println(era); // BCE

final var name1 = era.getDisplayName(TextStyle.FULL, Locale.US);
System.out.println(name1); // Before Christ

final var name2 = era.getDisplayName(TextStyle.FULL, Locale.JAPAN);
System.out.println(name2); // 紀元前

default long getLong (TemporalField field)

この紀元から指定されたフィールドの値をlongとして取得します。

final Era era = IsoEra.CE;
System.out.println(era); // CE

System.out.println(era.getLong(ChronoField.ERA)); // 1
final Era era = IsoEra.BCE;
System.out.println(era); // BCE

System.out.println(era.getLong(ChronoField.ERA)); // 0

int getValue ()

暦によって定義された、紀元に関連付けられている数値を取得します。

final Era era = IsoEra.CE;
System.out.println(era); // CE

System.out.println(era.getValue()); // 1
final Era era = IsoEra.BCE;
System.out.println(era); // BCE

System.out.println(era.getValue()); // 0

default boolean isSupported (TemporalField field)

指定されたフィールドがサポートされているかどうかをチェックします。

final Era era = IsoEra.CE;
System.out.println(era); // CE

System.out.println(era.isSupported(ChronoField.ERA)); // true
System.out.println(era.isSupported(ChronoField.YEAR)); // false

default <R> R query (TemporalQuery<R> query)

指定された問合せを使用してこの紀元を問い合わせます。

final Era era = IsoEra.CE;
System.out.println(era); // CE

final var ret = era.query(TemporalQueries.precision());
System.out.println(ret); // Eras

default ValueRange range (TemporalField field)

指定されたフィールドの有効な値の範囲を取得します。

final Era era = IsoEra.CE;
System.out.println(era); // CE

System.out.println(era.range(ChronoField.ERA)); // 0 - 1

関連記事

ページの先頭へ