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

クラスThaiBuddhistChronology

  • すべての実装されたインタフェース:
    Serializable, Comparable<Chronology>, Chronology


    public final class ThaiBuddhistChronology
    extends AbstractChronology
    implements Serializable
    タイ仏暦体系。

    この暦はタイ仏暦体系のルールを定義します。 この暦体系は主にタイで使用されています。 日付は2484-01-01 (仏)1941-01-01 (ISO)になるように調整されます。

    フィールドの定義は次のとおりです。

    • 紀元 - 現在の「仏暦」(ERA_BE)と前の紀元(ERA_BEFORE_BE)の2つの紀元があります。
    • 紀元年 - 現在の紀元の紀元年は、1年のエポックから一様に増加していきます。 前の紀元は時間を遡るにつれて、年が1から増えていきます。 現在の紀元の値はISO先発の年に543を足した値と等しくなります。
    • 先発の年 - 先発の年は、現在の紀元の紀元年と同じです。 前の紀元では、年は0で、次に負の値になります。 値はISO先発の年に543を足した値と等しくなります。
    • 月 - 仏暦の月は正確にISO暦に一致します。
    • 「月の日」 - 仏暦の「月の日」は正確にISO暦に一致します。
    • 「年の日」 - 仏暦の「年の日」は正確にISO暦に一致します。
    • うるう年 - 仏暦のうるう年のパターンは正確にISO暦に一致しするため、2つの暦の歩調がずれることはありません。
    実装要件:
    このクラスは不変でスレッドセーフです。
    導入されたバージョン:
    1.8
    関連項目:
    直列化された形式
    • フィールドの詳細

      • INSTANCE

        public static final ThaiBuddhistChronology INSTANCE
        仏暦の暦のシングルトン・インスタンス。
    • メソッドの詳細

      • getId

        public String getId​()
        暦のID (ThaiBuddhist)を取得します。

        このIDはChronologyを一意に識別します。 これは、Chronology.of(String)を使用して、Chronologyを検索するために使用できます。

        定義:
        インタフェースChronologygetId
        戻り値:
        暦ID - ThaiBuddhist
        関連項目:
        getCalendarType()
      • getCalendarType

        public String getCalendarType​()
        基礎となる暦体系のカレンダ・タイプ(buddhist)を取得します。

        カレンダ・タイプはUnicode Locale Data Markup Language (LDML)の仕様によって定義された識別子です。 これは、Chronology.of(String)を使用して、Chronologyを検索するために使用できます。 それは、キー「ca」でLocale.getUnicodeLocaleType(String)からアクセス可能なロケールの一部としても使用できます。

        定義:
        インタフェースChronologygetCalendarType
        戻り値:
        暦体系タイプ - buddhist
        関連項目:
        getId()
      • date

        public ThaiBuddhistDate date​(Era era,
                                     int yearOfEra,
                                     int month,
                                     int dayOfMonth)
        紀元、紀元年、月、および「月の日」フィールドから、タイ仏暦体系のローカル日付を取得します。
        定義:
        インタフェースChronologydate
        パラメータ:
        era - 仏暦の紀元、null以外
        yearOfEra - 紀元の年
        month - 年の月
        dayOfMonth - 「月の日」
        戻り値:
        タイ仏暦のローカル日付、null以外
        例外:
        DateTimeException - 日付を作成できない場合
        ClassCastException - eraThaiBuddhistEraでない場合
      • date

        public ThaiBuddhistDate date​(int prolepticYear,
                                     int month,
                                     int dayOfMonth)
        先発の年、月、および「月の日」フィールドから、仏暦体系のローカル日付を取得します。
        定義:
        インタフェースChronologydate
        パラメータ:
        prolepticYear - 先発の年
        month - 年の月
        dayOfMonth - 「月の日」
        戻り値:
        タイ仏暦のローカル日付、null以外
        例外:
        DateTimeException - 日付を作成できない場合
      • dateYearDay

        public ThaiBuddhistDate dateYearDay​(Era era,
                                            int yearOfEra,
                                            int dayOfYear)
        紀元、紀元年、および「年の日」フィールドから、タイ仏暦体系のローカル日付を取得します。
        定義:
        インタフェースChronologydateYearDay
        パラメータ:
        era - 仏暦の紀元、null以外
        yearOfEra - 紀元の年
        dayOfYear - 「年の日」
        戻り値:
        タイ仏暦のローカル日付、null以外
        例外:
        DateTimeException - 日付を作成できない場合
        ClassCastException - eraThaiBuddhistEraでない場合
      • dateYearDay

        public ThaiBuddhistDate dateYearDay​(int prolepticYear,
                                            int dayOfYear)
        先発の年および「年の日」フィールドから、仏暦体系のローカル日付を取得します。
        定義:
        インタフェースChronologydateYearDay
        パラメータ:
        prolepticYear - 先発の年
        dayOfYear - 「年の日」
        戻り値:
        タイ仏暦のローカル日付、null以外
        例外:
        DateTimeException - 日付を作成できない場合
      • dateEpochDay

        public ThaiBuddhistDate dateEpochDay​(long epochDay)
        エポック日から、仏暦体系のローカル日付を取得します。
        定義:
        インタフェースChronologydateEpochDay
        パラメータ:
        epochDay - エポック日
        戻り値:
        タイ仏暦のローカル日付、null以外
        例外:
        DateTimeException - 日付を作成できない場合
      • dateNow

        public ThaiBuddhistDate dateNow​()
        次のインタフェースからコピーされた説明: Chronology
        デフォルトのタイムゾーンのシステム・クロックからこの暦の現在のローカル日付を取得します。

        これは、デフォルトのタイムゾーンのsystem clockを問い合わせ、現在の日付を取得します。

        このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。

        定義:
        インタフェースChronologydateNow
        戻り値:
        システムクロックとデフォルトのタイムゾーンを使用した現在のローカル日付、null以外
      • dateNow

        public ThaiBuddhistDate dateNow​(ZoneId zone)
        次のインタフェースからコピーされた説明: Chronology
        指定されたタイムゾーンのシステム・クロックからこの暦の現在のローカル日付を取得します。

        これはsystem clockを問い合わせて、現在の日付を取得します。 タイムゾーンを指定すると、デフォルトのタイムゾーンへの依存を避けられます。

        このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。

        定義:
        インタフェースChronologydateNow
        パラメータ:
        zone - 使用するゾーンID、null以外
        戻り値:
        システムクロックを使用した現在のローカル日付、null以外
      • dateNow

        public ThaiBuddhistDate dateNow​(Clock clock)
        次のインタフェースからコピーされた説明: Chronology
        指定されたクロックからこの暦の現在のローカル日付を取得します。

        これは指定されたクロックを問い合わせ、現在の日付(今日)を取得します。 このメソッドを使用すると、テストに代替のクロックを使用できます。 代替のクロックはdependency injectionを使用して導入できます。

        定義:
        インタフェースChronologydateNow
        パラメータ:
        clock - 使用するクロック、null以外
        戻り値:
        現在のローカル日付、null以外
      • date

        public ThaiBuddhistDate date​(TemporalAccessor temporal)
        次のインタフェースからコピーされた説明: Chronology
        別の時間的オブジェクトから、この暦のローカル日付を取得します。

        これは、指定された時間的オブジェクトに基づいてこの暦での日付を取得します。 TemporalAccessorは任意の日付と時間情報のセットを表し、このファクトリがChronoLocalDateのインスタンスに変換します。

        変換では一般に、暦体系全体で標準化されたEPOCH_DAYフィールドを使用します。

        このメソッドは関数型インタフェースTemporalQueryのシグネチャに一致するため、メソッド参照aChronology::dateを介して、問合せとして使用できます。

        定義:
        インタフェースChronologydate
        パラメータ:
        temporal - 変換する一時オブジェクト、null以外
        戻り値:
        この暦でのローカル日付、null以外
        関連項目:
        ChronoLocalDate.from(TemporalAccessor)
      • localDateTime

        public ChronoLocalDateTime<ThaiBuddhistDate> localDateTime​(TemporalAccessor temporal)
        次のインタフェースからコピーされた説明: Chronology
        別の時間的オブジェクトから、この暦のローカル日付/時間を取得します。

        これは、指定された時間的オブジェクトに基づいてこの暦での日付/時間を取得します。 TemporalAccessorは任意の日付と時間情報のセットを表し、このファクトリがChronoLocalDateTimeのインスタンスに変換します。

        変換では、時間的オブジェクトからChronoLocalDateLocalTimeを抽出し、組み合わせます。 実装では、関連オブジェクトと同等のそれらのフィールドにアクセスするなどの最適化を実行することが許可されます。 結果ではこの暦を使用します。

        このメソッドは関数型インタフェースTemporalQueryのシグネチャに一致するため、メソッド参照aChronology::localDateTimeを介して、問合せとして使用できます。

        定義:
        インタフェースChronologylocalDateTime
        パラメータ:
        temporal - 変換する一時オブジェクト、null以外
        戻り値:
        この暦でのローカル日付/時間、null以外
        関連項目:
        ChronoLocalDateTime.from(TemporalAccessor)
      • zonedDateTime

        public ChronoZonedDateTime<ThaiBuddhistDate> zonedDateTime​(TemporalAccessor temporal)
        次のインタフェースからコピーされた説明: Chronology
        もう一方のtemporal (一時)オブジェクトからこの暦でChronoZonedDateTimeを取得します。

        これは、指定された時間的オブジェクトに基づいてこの暦でのゾーン付きの日付/時間を取得します。 TemporalAccessorは任意の日付と時間情報のセットを表し、このファクトリがChronoZonedDateTimeのインスタンスに変換します。

        変換では、まず時間的オブジェクトからZoneIdを取得し、必要に応じて、ZoneOffsetを使用します。 次に、Instantを取得しようとし、必要に応じて、ChronoLocalDateTimeを使用します。 結果はZoneIdまたはZoneOffsetInstantまたはChronoLocalDateTimeのいずれかの組み合わせです。 実装では、関連オブジェクトと同等のそれらのフィールドにアクセスするなどの最適化を実行することが許可されます。 結果ではこの暦を使用します。

        このメソッドは関数型インタフェースTemporalQueryのシグネチャに一致するため、メソッド参照aChronology::zonedDateTimeを介して、問合せとして使用できます。

        定義:
        インタフェースChronologyzonedDateTime
        パラメータ:
        temporal - 変換する一時オブジェクト、null以外
        戻り値:
        この暦でのゾーン付きの日付/時間、null以外
        関連項目:
        ChronoZonedDateTime.from(TemporalAccessor)
      • zonedDateTime

        public ChronoZonedDateTime<ThaiBuddhistDate> zonedDateTime​(Instant instant,
                                                                   ZoneId zone)
        次のインタフェースからコピーされた説明: Chronology
        Instantからこの暦でChronoZonedDateTimeを取得します。

        これは、指定された同じインスタントで、ゾーン付きの日付/時間を取得します。

        定義:
        インタフェースChronologyzonedDateTime
        パラメータ:
        instant - 日付/時間の作成元のインスタント、null以外
        zone - タイムゾーン、null以外
        戻り値:
        ゾーン付きの日付/時間、null以外
      • isLeapYear

        public boolean isLeapYear​(long prolepticYear)
        指定された年がうるう年であるかどうかをチェックします。

        仏暦のうるう年は、ISO暦のうるう年と正確に一致して発生します。 このメソッドは渡される年を検証せず、サポートされる範囲内の年に対してのみ明確に定義された結果が得られます。

        定義:
        インタフェースChronologyisLeapYear
        パラメータ:
        prolepticYear - チェックする先発の年、範囲が検証されない
        戻り値:
        年がうるう年の場合はtrue
      • prolepticYear

        public int prolepticYear​(Era era,
                                 int yearOfEra)
        次のインタフェースからコピーされた説明: Chronology
        紀元と紀元年を指定して先発の年を計算します。

        これは紀元と紀元の年を単一の先発の年フィールドに組み合わせます。

        JapaneseChronologyなど、暦で紀元が頻繁に使われている場合、紀元の年が紀元に照らして検証されます。 他の暦の場合、検証はオプションです。

        定義:
        インタフェースChronologyprolepticYear
        パラメータ:
        era - 暦の正しいタイプの紀元、null以外
        yearOfEra - 暦の紀元の年
        戻り値:
        先発の年
      • eraOf

        public ThaiBuddhistEra eraOf​(int eraValue)
        次のインタフェースからコピーされた説明: Chronology
        数値から、暦の紀元オブジェクトを作成します。

        この紀元は概念上、時系列の最大の区分です。 ほとんどの暦体系には、時系列を2つの紀元に分割する1つのエポックがあります。 ただし、一部には各指導者の統治期間に1つずつなど、複数の紀元があります。 正確な意味は、次の制約に従って、暦によって決定されます。

        1970-01-01で使用する紀元は値が1である必要があります。 以降の紀元は、値が順に大きくなる必要があります。 以前の紀元は、値が順に小さくなる必要があります。 各暦は列挙または類似のシングルトンを参照して、紀元の値を提供する必要があります。

        このメソッドは、指定された紀元の値に対して、正しいタイプのシングルトンの紀元を返します。

        定義:
        インタフェースChronologyeraOf
        パラメータ:
        eraValue - 紀元の値
        戻り値:
        暦体系の紀元、null以外
      • eras

        public List<Era> eras​()
        次のインタフェースからコピーされた説明: Chronology
        暦の紀元のリストを取得します。

        ほとんどの暦体系には、その中で年が意味を持つ紀元があります。 暦体系が紀元の概念をサポートしていない場合、空のリストを返す必要があります。

        定義:
        インタフェースChronologyeras
        戻り値:
        暦の紀元のリスト、不変の場合がある、null以外
      • range

        public ValueRange range​(ChronoField field)
        次のインタフェースからコピーされた説明: Chronology
        指定されたフィールドの有効な値の範囲を取得します。

        すべてのフィールドはlong整数で表現できます。 このメソッドは、その値の有効範囲を記述するオブジェクトを返します。

        結果は有効な最小値と最大値を記述しているだけなので、それらを深く解釈しすぎないことが重要です。 たとえば、範囲内の値であっても、フィールドに対して無効な場合があります。

        このメソッドは、暦でフィールドをサポートしているかどうかに関係なく、結果を返します。

        定義:
        インタフェースChronologyrange
        パラメータ:
        field - 範囲を取得するフィールド、null以外
        戻り値:
        フィールドの有効値の範囲。null以外
      • resolveDate

        public ThaiBuddhistDate resolveDate​(Map<TemporalField,Long> fieldValues,
                                            ResolverStyle resolverStyle)
        クラスからコピーされた説明: AbstractChronology
        解析されたChronoFieldの値を解析時の日付に解決します。

        ほとんどのTemporalField実装は、フィールド上の解決メソッドを使用して解決されます。 これに対し、ChronoFieldクラスは暦に関連する意味のみを持つフィールドを定義します。 そのため、ChronoField日付フィールドは、ここで特定の暦のコンテキストで解決されます。

        ChronoFieldインスタンスはこのメソッドによって解決され、サブクラスでオーバーライドできます。

        • EPOCH_DAY - 存在する場合、日付に変換され、他のすべての日付フィールドがこの日付に対して照合されます。
        • PROLEPTIC_MONTH - 存在する場合、YEARMONTH_OF_YEARに分割されます。 モードがstrictまたはsmartである場合、フィールドは検証されます。
        • YEAR_OF_ERAERA - 両方とも存在する場合、それらが組み合わされてYEARを形成します。 lenientモードではYEAR_OF_ERAの範囲は検証されず、smartおよびstrictモードでは検証されます。 ERAは3つすべてのモードで範囲が検証されます。 YEAR_OF_ERAのみが存在し、モードがsmartまたはlenientの場合、最後の使用可能な紀元と想定されます。 strictモードでは、紀元が想定されず、YEAR_OF_ERAはそのままの状態にされます。 ERAのみが存在する場合、それはそのままの状態にされます。
        • YEARMONTH_OF_YEARDAY_OF_MONTH - 3つすべてが存在する場合、それらが組み合わされて日付が形成されます。 3つすべてのモードで、YEARが検証されます。 モードがsmartまたはstrictの場合、月と日が検証されます。 モードがlenientの場合、要求された年の最初の月の最初の日で日付を作成し、次に月数での差、次に日数での差を加算する場合と等しい方法で、日付が組み合わされます。 モードがsmartで、「月の日」が年-月の最大より大きい場合、「月の日」は最後の「月の日」に調整されます。 モードがstrictの場合、3つのフィールドは有効な日付を形成している必要があります。
        • YEARDAY_OF_YEAR - 両方とも存在する場合、それらが組み合わされて日付が形成されます。 3つすべてのモードで、YEARが検証されます。 モードがlenientの場合、要求された年の最初の日で日付を作成し、次に日数での差を加算する場合と等しい方法で、日付が組み合わされます。 モードがsmartまたはstrictの場合、2つのフィールドは有効な日付を形成している必要があります。
        • YEARMONTH_OF_YEARALIGNED_WEEK_OF_MONTHALIGNED_DAY_OF_WEEK_IN_MONTH - 4つすべてが存在する場合、それらが組み合わされて日付が形成されます。 3つすべてのモードで、YEARが検証されます。 モードがlenientの場合、要求された年の最初の月の最初の日で日付を作成し、次に月数での差、次に週数での差、次に日数での差を加算する場合と等しい方法で、日付が組み合わされます。 モードがsmartまたはstrictの場合、4つすべてのフィールドがそれらの外側の範囲に対して検証されます。 次に、要求された年と月の最初の日で日付を作成し、次に週数と日数での量を加算して、それらの値に到達する場合と等しい方法で、日付が組み合わされます。 モードがstrictの場合、日付がさらに検証され、日と週の調整によって月が変更されていないかどうかがチェックされます。
        • YEARMONTH_OF_YEARALIGNED_WEEK_OF_MONTHDAY_OF_WEEK - 4つすべてが存在する場合、それらが組み合わされて日付が形成されます。 このアプローチは、ALIGNED_DAY_OF_WEEK_IN_MONTHの年、月、および週についての上記の説明と同じです。 年、月、および週が処理されると、曜日が次または同じ一致する曜日で調整されます。
        • YEARALIGNED_WEEK_OF_YEARALIGNED_DAY_OF_WEEK_IN_YEAR - 3つすべてが存在する場合、それらが組み合わされて日付が形成されます。 3つすべてのモードで、YEARが検証されます。 モードがlenientの場合、要求された年の最初の日で日付を作成し、次に週数での差、次に日数での差を加算する場合と等しい方法で、日付が組み合わされます。 モードがsmartまたはstrictの場合、3つすべてのフィールドがそれらの外側の範囲に対して検証されます。 次に、要求された年の最初の日で日付を作成し、次に週数と日数での量を加算して、それらの値に到達する場合と等しい方法で、日付が組み合わされます。 モードがstrictの場合、日付がさらに検証され、日と週の調整によって年が変更されていないかどうかがチェックされます。
        • YEARALIGNED_WEEK_OF_YEARDAY_OF_WEEK - 3つすべてが存在する場合、それらが組み合わされて日付が形成されます。 このアプローチは、ALIGNED_DAY_OF_WEEK_IN_YEARの年および週についての上記の説明と同じです。 年および週が処理されると、曜日が次または同じ一致する曜日で調整されます。

        デフォルト実装はほとんどの暦体系に適切です。 ChronoField.ERAなしでChronoField.YEAR_OF_ERAが見つかった場合、Chronology.eras()の最後の紀元が使用されます。 実装では、7日の週、最初の「月の日」の値が1、最初の「年の日」の値が1、最初の月と年が必ず存在するものと想定します。

        定義:
        インタフェースChronologyresolveDate
        オーバーライド:
        クラスAbstractChronologyresolveDate
        パラメータ:
        fieldValues - フィールドと値のマップ、更新可能、null以外
        resolverStyle - 要求された解決のタイプ、null以外
        戻り値:
        解決された日付、日付を作成するための情報が不十分な場合はnull