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
-
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明int
compareTo
(Chronology other) この暦を別の暦と比較します。boolean
この暦が別の暦と等しいかどうかをチェックします。int
hashCode()
この暦のハッシュ・コード。resolveDate
(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle) 解析されたChronoField
の値を解析時の日付に解決します。toString()
暦IDを使用して、この暦をString
として出力します。インタフェース java.time.chrono.Chronologyで宣言されたメソッド
date, date, date, dateEpochDay, dateNow, dateNow, dateNow, dateYearDay, dateYearDay, epochSecond, epochSecond, eraOf, eras, getCalendarType, getDisplayName, getId, isLeapYear, localDateTime, period, prolepticYear, range, zonedDateTime, zonedDateTime
-
コンストラクタの詳細
-
AbstractChronology
protected AbstractChronology()インスタンスを作成します。
-
-
メソッドの詳細
-
resolveDate
public ChronoLocalDate resolveDate(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle) 解析されたChronoField
の値を解析時の日付に解決します。ほとんどの
TemporalField
実装は、フィールド上の解決メソッドを使用して解決されます。 これに対し、ChronoField
クラスは暦に関連する意味のみを持つフィールドを定義します。 そのため、ChronoField
日付フィールドは、ここで特定の暦のコンテキストで解決されます。ChronoField
インスタンスはこのメソッドによって解決され、サブクラスでオーバーライドできます。EPOCH_DAY
- 存在する場合、日付に変換され、他のすべての日付フィールドがこの日付に対して照合されます。PROLEPTIC_MONTH
- 存在する場合、YEAR
とMONTH_OF_YEAR
に分割されます。 モードがstrictまたはsmartである場合、フィールドは検証されます。YEAR_OF_ERA
とERA
- 両方とも存在する場合、それらが組み合わされてYEAR
を形成します。 lenientモードではYEAR_OF_ERA
の範囲は検証されず、smartおよびstrictモードでは検証されます。ERA
は3つすべてのモードで範囲が検証されます。YEAR_OF_ERA
のみが存在し、モードがsmartまたはlenientの場合、最後の使用可能な紀元と想定されます。 strictモードでは、紀元が想定されず、YEAR_OF_ERA
はそのままの状態にされます。ERA
のみが存在する場合、それはそのままの状態にされます。YEAR
、MONTH_OF_YEAR
、DAY_OF_MONTH
- 3つすべてが存在する場合、それらが組み合わされて日付が形成されます。 3つすべてのモードで、YEAR
が検証されます。 モードがsmartまたはstrictの場合、月と日が検証されます。 モードがlenientの場合、要求された年の最初の月の最初の日で日付を作成し、次に月数での差、次に日数での差を加算する場合と等しい方法で、日付が組み合わされます。 モードがsmartで、「月の日」が年-月の最大より大きい場合、「月の日」は最後の「月の日」に調整されます。 モードがstrictの場合、3つのフィールドは有効な日付を形成している必要があります。YEAR
とDAY_OF_YEAR
- 両方とも存在する場合、それらが組み合わされて日付が形成されます。 3つすべてのモードで、YEAR
が検証されます。 モードがlenientの場合、要求された年の最初の日で日付を作成し、次に日数での差を加算する場合と等しい方法で、日付が組み合わされます。 モードがsmartまたはstrictの場合、2つのフィールドは有効な日付を形成している必要があります。YEAR
、MONTH_OF_YEAR
、ALIGNED_WEEK_OF_MONTH
、ALIGNED_DAY_OF_WEEK_IN_MONTH
- 4つすべてが存在する場合、それらが組み合わされて日付が形成されます。 3つすべてのモードで、YEAR
が検証されます。 モードがlenientの場合、要求された年の最初の月の最初の日で日付を作成し、次に月数での差、次に週数での差、次に日数での差を加算する場合と等しい方法で、日付が組み合わされます。 モードがsmartまたはstrictの場合、4つすべてのフィールドがそれらの外側の範囲に対して検証されます。 次に、要求された年と月の最初の日で日付を作成し、次に週数と日数での量を加算して、それらの値に到達する場合と等しい方法で、日付が組み合わされます。 モードがstrictの場合、日付がさらに検証され、日と週の調整によって月が変更されていないかどうかがチェックされます。YEAR
、MONTH_OF_YEAR
、ALIGNED_WEEK_OF_MONTH
、DAY_OF_WEEK
- 4つすべてが存在する場合、それらが組み合わされて日付が形成されます。 このアプローチは、ALIGNED_DAY_OF_WEEK_IN_MONTH
の年、月、および週についての上記の説明と同じです。 年、月、および週が処理されると、曜日が次または同じ一致する曜日で調整されます。YEAR
、ALIGNED_WEEK_OF_YEAR
、ALIGNED_DAY_OF_WEEK_IN_YEAR
- 3つすべてが存在する場合、それらが組み合わされて日付が形成されます。 3つすべてのモードで、YEAR
が検証されます。 モードがlenientの場合、要求された年の最初の日で日付を作成し、次に週数での差、次に日数での差を加算する場合と等しい方法で、日付が組み合わされます。 モードがsmartまたはstrictの場合、3つすべてのフィールドがそれらの外側の範囲に対して検証されます。 次に、要求された年の最初の日で日付を作成し、次に週数と日数での量を加算して、それらの値に到達する場合と等しい方法で、日付が組み合わされます。 モードがstrictの場合、日付がさらに検証され、日と週の調整によって年が変更されていないかどうかがチェックされます。YEAR
、ALIGNED_WEEK_OF_YEAR
、DAY_OF_WEEK
- 3つすべてが存在する場合、それらが組み合わされて日付が形成されます。 このアプローチは、ALIGNED_DAY_OF_WEEK_IN_YEAR
の年および週についての上記の説明と同じです。 年および週が処理されると、曜日が次または同じ一致する曜日で調整されます。
デフォルト実装はほとんどの暦体系に適切です。
ChronoField.ERA
なしでChronoField.YEAR_OF_ERA
が見つかった場合、Chronology.eras()
の最後の紀元が使用されます。 実装では、7日の週、最初の「月の日」の値が1、最初の「年の日」の値が1、最初の月と年が必ず存在するものと想定します。- 定義:
- インタフェース
Chronology
のresolveDate
- パラメータ:
fieldValues
- フィールドと値のマップ、更新可能、null以外resolverStyle
- 要求された解決のタイプ、null以外- 戻り値:
- 解決された日付、日付を作成するための情報が不十分な場合はnull
- 例外:
DateTimeException
- 一般に入力データの競合のため、日付を解決できない場合
-
compareTo
public int compareTo(Chronology other) この暦を別の暦と比較します。最初に暦ID文字列、次にサブクラスに固有の任意の追加の情報による比較の順序。
Comparable
に定義されているとおりに、「equalsと一致」しています。- 定義:
- インタフェース
Chronology
のcompareTo
- 定義:
- インタフェース
Comparable<Chronology>
のcompareTo
- 実装要件:
- この実装は暦IDを比較します。 サブクラスはそれらが格納している追加の状態を比較する必要があります。
- パラメータ:
other
- 他の比較する暦、null以外- 戻り値:
- コンパレータ値、小さい場合は負、大きい場合は正
-
equals
public boolean equals(Object obj) この暦が別の暦と等しいかどうかをチェックします。比較はオブジェクトの全体の状態に基づきます。
- 定義:
- インタフェース
Chronology
のequals
- オーバーライド:
equals
、クラスObject
- 実装要件:
- この実装は型をチェックし、
compareTo(java.time.chrono.Chronology)
を呼び出します。 - パラメータ:
obj
- チェックするオブジェクト、nullはfalseを返す- 戻り値:
- これが他の暦と等しい場合はtrue
- 関連項目:
-
hashCode
public int hashCode()この暦のハッシュ・コード。ハッシュ・コードはオブジェクトの全体の状態に基づかせてください。
- 定義:
- インタフェース
Chronology
のhashCode
- オーバーライド:
hashCode
、クラスObject
- 実装要件:
- この実装は暦IDとクラスに基づきます。 サブクラスはそれらが格納している追加の状態を追加してください。
- 戻り値:
- 適切なハッシュ・コード
- 関連項目:
-
toString
public String toString()暦IDを使用して、この暦をString
として出力します。- 定義:
- インタフェース
Chronology
のtoString
- オーバーライド:
toString
、クラスObject
- 戻り値:
- この暦の文字列表現、null以外
-