クラスAbstractChronology

java.lang.Object
java.time.chrono.AbstractChronology
すべての実装されたインタフェース:
Comparable<Chronology>, Chronology
直系の既知のサブクラス:
HijrahChronology, IsoChronology, JapaneseChronology, MinguoChronology, ThaiBuddhistChronology

public abstract class AbstractChronology extends Object implements Chronology
日付の編成と識別に使用される暦体系の抽象実装。

メインの日付と時間APIはISO暦体系に基づいて構築されています。 暦(chronology)は背後で動作し、暦体系の一般概念を表します。

詳細についてはChronologyを参照してください。

実装要件:
このクラスはChronologyインタフェースから分離されているため、staticメソッドは継承されません。 Chronologyは直接実装できますが、代わりにこの抽象クラスを拡張することを強くお薦めします。

このクラスは、他のクラスが正常に動作するように、注意して実装する必要があります。 インスタンス化可能なすべての実装は、最終、不変、およびスレッドセーフである必要があります。 サブクラスは、可能であれば直列化可能にしてください。

導入されたバージョン:
1.8
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    インスタンスを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    int
    この暦を別の暦と比較します。
    boolean
    この暦が別の暦と等しいかどうかをチェックします。
    int
    この暦のハッシュ・コード。
    resolveDate(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle)
    解析されたChronoFieldの値を解析時の日付に解決します。
    暦IDを使用して、この暦をStringとして出力します。

    クラスオブジェクトで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。

    インタフェース時系列で宣言されたメソッド

    date, date, date, dateEpochDay, dateNow, dateNow, dateNow, dateYearDay, dateYearDay, epochSecond, epochSecond, eraOf, eras, getCalendarType, getDisplayName, getId, isIsoBased, isLeapYear, localDateTime, period, prolepticYear, range, zonedDateTime, zonedDateTime
    修飾子と型
    メソッド
    説明
    date(int prolepticYear, int month, int dayOfMonth)
    先発暦の年、月、および「月の日」フィールドから、この暦のローカル日付を取得します。
    date(Era era, int yearOfEra, int month, int dayOfMonth)
    紀元、紀元年、月、および「月の日」フィールドから、この暦のローカル日付を取得します。
    別の時間的オブジェクトから、この暦のローカル日付を取得します。
    dateEpochDay(long epochDay)
    エポック日から、この暦のローカル日付を取得します。
    デフォルトのタイムゾーンのシステム・クロックからこの暦の現在のローカル日付を取得します。
    dateNow(Clock clock)
    指定されたクロックからこの暦の現在のローカル日付を取得します。
    指定されたタイムゾーンのシステム・クロックからこの暦の現在のローカル日付を取得します。
    dateYearDay(int prolepticYear, int dayOfYear)
    先発暦の年および「年の日」フィールドから、この暦のローカル日付を取得します。
    dateYearDay(Era era, int yearOfEra, int dayOfYear)
    紀元、紀元年、「年の日」フィールドから、この暦のローカル日付を取得します。
    default long
    epochSecond(int prolepticYear, int month, int dayOfMonth, int hour, int minute, int second, ZoneOffset zoneOffset)
    1970-01-01T00:00:00Zのエポックから秒数を取得します。
    default long
    epochSecond(Era era, int yearOfEra, int month, int dayOfMonth, int hour, int minute, int second, ZoneOffset zoneOffset)
    1970-01-01T00:00:00Zのエポックから秒数を取得します。
    eraOf(int eraValue)
    数値から、暦の紀元オブジェクトを作成します。
    暦の紀元のリストを取得します。
    暦体系のカレンダ・タイプを取得します。
    default String
    この暦のテキスト表現を取得します。
    暦のIDを取得します。
    default boolean
    この時系列がISOベースかどうかを確認します。
    boolean
    isLeapYear(long prolepticYear)
    指定された年がうるう年であるかどうかをチェックします。
    別の時間的オブジェクトから、この暦のローカル日付/時間を取得します。
    default ChronoPeriod
    period(int years, int months, int days)
    この暦の期間を年、月および日に基づいて取得します。
    int
    prolepticYear(Era era, int yearOfEra)
    紀元と紀元年を指定して先発暦の年を計算します。
    指定されたフィールドの有効な値の範囲を取得します。
    zonedDateTime(Instant instant, ZoneId zone)
    Instantからこの暦でChronoZonedDateTimeを取得します。
    もう一方のtemporal (一時)オブジェクトからこの暦でChronoZonedDateTimeを取得します。
  • コンストラクタの詳細

    • AbstractChronology

      protected AbstractChronology()
      インスタンスを作成します。
  • メソッドの詳細

    • resolveDate

      public ChronoLocalDate resolveDate(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle)
      解析された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
      パラメータ:
      fieldValues - フィールドと値のマップ、更新可能、null以外
      resolverStyle - 要求された解決のタイプ、null以外
      戻り値:
      解決された日付、日付を作成するための情報が不十分な場合はnull
      スロー:
      DateTimeException - 一般に入力データの競合のため、日付を解決できない場合
    • compareTo

      public int compareTo(Chronology other)
      この暦を別の暦と比較します。

      最初に暦ID文字列、次にサブクラスに固有の任意の追加の情報による比較の順序。 Comparableに定義されているとおりに、「equalsと一致」しています。

      定義:
      インタフェースChronologycompareTo
      定義:
      インタフェースComparable<Chronology>compareTo
      実装要件:
      この実装は暦IDを比較します。 サブクラスはそれらが格納している追加の状態を比較する必要があります。
      パラメータ:
      other - 他の比較する暦、null以外
      戻り値:
      コンパレータ値。これは、otherのID文字列と比較したこのID文字列です
    • equals

      public boolean equals(Object obj)
      この暦が別の暦と等しいかどうかをチェックします。

      比較はオブジェクトの全体の状態に基づきます。

      定義:
      インタフェースChronologyequals
      オーバーライド:
      equals、クラスObject
      実装要件:
      この実装は型をチェックし、compareTo(java.time.chrono.Chronology)を呼び出します。
      パラメータ:
      obj - チェックするオブジェクト、nullはfalseを返す
      戻り値:
      これが他の暦と等しい場合はtrue
      関連項目:
    • hashCode

      public int hashCode()
      この暦のハッシュ・コード。

      ハッシュ・コードはオブジェクトの全体の状態に基づかせてください。

      定義:
      インタフェースChronologyhashCode
      オーバーライド:
      hashCode、クラスObject
      実装要件:
      この実装は暦IDとクラスに基づきます。 サブクラスはそれらが格納している追加の状態を追加してください。
      戻り値:
      適切なハッシュ・コード
      関連項目:
    • toString

      public String toString()
      暦IDを使用して、この暦をStringとして出力します。
      定義:
      インタフェースChronologytoString
      オーバーライド:
      toString、クラスObject
      戻り値:
      この暦の文字列表現、null以外