モジュール java.base
パッケージ java.time.chrono

クラスHijrahChronology

java.lang.Object
java.time.chrono.AbstractChronology
java.time.chrono.HijrahChronology
すべての実装されたインタフェース:
Serializable, Comparable<Chronology>, Chronology

public final class HijrahChronology extends AbstractChronology implements Serializable
ヒジュラ暦はイスラム暦をサポートする太陰暦です。

HijrahChronologyはヒジュラ暦体系のルールに従います。 ヒジュラ暦は、新月が発生したと判断されるタイミングと観察が行われた場所の違いに基づいて、いくつかのバリアントがあります。 一部のバリアントでは、各月の長さが月と地球の天文学データからアルゴリズムで計算され、他のバリアントでは、月の長さが、承認された新月の観測によって決定されます。 アルゴリズムに基づいた暦の場合、暦は未来まで予測することができます。 観測に基づいた暦の場合は、過去の観測からの履歴データのみを使用できます。

各月の長さは29日または30日です。 通常の年は354日で、うるう年は355日です。

CLDRとLDMLでバリアントを識別します。

ヒジュラ暦のバリアント
暦ID カレンダ・タイプ ロケール拡張子、Localeを参照 説明
Hijrah-umalqura islamic-umalqura ca-islamic-umalqura イスラム暦 - サウジ・アラビアのウム・アルクラ暦

追加のバリアントはChronology.getAvailableChronologies()から使用できます。

ロケールからの暦の選択では、Chronology.ofLocale(java.util.Locale)を使用して、ロケールでサポートされているBCP 47拡張メカニズムに基づいて、暦を見つけ、特定の暦(ca)を要求します。 たとえば、

      Locale locale = Locale.forLanguageTag("en-US-u-ca-islamic-umalqura");
      Chronology chrono = Chronology.ofLocale(locale);
 
実装要件:
このクラスは不変でスレッドセーフです。
実装上のノート:
ヒジュラ暦の各バリアントは個別に構成されます。 各バリアントは、IDcalendar type、暦の開始、ISO暦との調整、一定の範囲の年の各月の長さを定義するプロパティ・リソースによって定義されます。 バリアントは、HijrahChronologyによってhijrah-config-<calendar type>.propertiesからのリソースとしてロードされます。

ヒジュラ暦のプロパティ・リソースは暦を記述する一連のプロパティです。 構文はjava.util.Properties#load(Reader)によって定義されます。

ヒジュラ暦の構成
プロパティ名 プロパティ値 説明
id 暦ID、たとえば、Hijrah-umalqura 一般的な使用方法での暦のID
type カレンダ・タイプ、たとえば、islamic-umalqura LDMLはカレンダ・タイプを定義します
バージョン バージョン、たとえば: 1.8.0_1 ヒジュラ暦のバリアントのバージョン・データ
iso-start yyyy-MM-ddで書式設定されたISO開始日、たとえば: 1900-04-30 ヒジュラ暦の最小の年の初日のISO日付。
yyyy - 4桁の数値の年、たとえば1434 値は12か月の長さのシーケンス、たとえば: 29 30 29 30 29 30 30 30 29 30 29 29 空白で区切られた年の12か月の長さ。 ギャップなくすべての年について、数値の年プロパティが存在する必要があります。 月の長さは29-32 (この値を含む)の間である必要があります。

<JAVA_HOME>/conf/chronologyディレクトリに構成プロパティ・ファイルを指定することで、バリアントを追加できます。 プロパティ・ファイルは、hijrah-config-<chronology id>_<calendar type>.propertiesのネーミング規則に従う必要があります。

導入されたバージョン:
1.8
関連項目: