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

クラスIsoChronology

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

    public final class IsoChronology
    extends AbstractChronology
    implements Serializable
    ISO暦体系。

    この暦はISO暦体系のルールを定義します。 この暦体系は、ISO-8601規格に基づいており、事実上の世界暦です。

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

    • 紀元 - 紀元後(CE)と紀元前(BCE)の2つの紀元があります。
    • 紀元年 - 紀元年は現在のCE紀元の先発暦の年と同じです。 ISO暦のエポック以前のBCE紀元では、時間を遡るにつれて、年が1から増えていきます。
    • 先発暦の年 - 先発暦の年は、現在の紀元の紀元年と同じです。 前の紀元では、年は0で、次に負の値になります。
    • 月 - ISO暦の年には、1から12の番号が付けられた12か月あります。
    • 月の日 - ISO暦の各月には、1から31の番号が付けられた28日から31日まであります。 4、6、9、および11月は30日あり、1、3、5、7、8、10、および12月は31日あります。 2月は28日、またはうるう年に29日あります。
    • 年の日 - 標準のISO暦の年は365日あり、うるう年は366日あります。 日は1から365または1から366の番号が付けられます。
    • うるう年 - うるう年は、年が100で割れて400で割れない場合を除いて、4年ごとに発生します。

    実装要件:
    このクラスは不変でスレッドセーフです。
    導入されたバージョン:
    1.8
    関連項目:
    直列化された形式
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      static IsoChronology INSTANCE
      ISO暦の暦のシングルトン・インスタンス。
    • メソッドのサマリー

      修飾子と型 メソッド 説明
      LocalDate date​(int prolepticYear, int month, int dayOfMonth)
      先発暦の年、月、および月間通算日フィールドから、ISO暦のローカル日付を取得します。
      LocalDate date​(Era era, int yearOfEra, int month, int dayOfMonth)
      紀元、紀元年、月、および月間通算日フィールドから、ISO暦のローカル日付を取得します。
      LocalDate date​(TemporalAccessor temporal)
      別の日付/時間オブジェクトからISO暦のローカル日付を取得します。
      LocalDate dateEpochDay​(long epochDay)
      エポック日からISO暦のローカル日付を取得します。
      LocalDate dateNow()
      デフォルトのタイムゾーンのシステム・クロックから現在のISO暦のローカル日付を取得します。
      LocalDate dateNow​(Clock clock)
      指定されたクロックから現在のISO暦のローカル日付を取得します。
      LocalDate dateNow​(ZoneId zone)
      指定されたタイムゾーンのシステム・クロックから現在のISO暦のローカル日付を取得します。
      LocalDate dateYearDay​(int prolepticYear, int dayOfYear)
      先発暦の年および年間通算日フィールドから、ISO暦のローカル日付を取得します。
      LocalDate dateYearDay​(Era era, int yearOfEra, int dayOfYear)
      紀元、紀元年、および年間通算日フィールドから、ISO暦のローカル日付を取得します。
      long epochSecond​(int prolepticYear, int month, int dayOfMonth, int hour, int minute, int second, ZoneOffset zoneOffset)
      1970-01-01T00:00:00Zの時代からの秒数を取得します。
      String getCalendarType()
      基礎となる暦体系のカレンダ・タイプ(iso8601)を取得します。
      String getId()
      暦のID (ISO)を取得します。
      boolean isLeapYear​(long prolepticYear)
      ISO先発暦体系のルールに従って、年がうるう年であるかどうかをチェックします。
      LocalDateTime localDateTime​(TemporalAccessor temporal)
      別の日付/時間オブジェクトからISO暦のローカル日付/時間を取得します。
      Period period​(int years, int months, int days)
      この暦の期間を年、月および日に基づいて取得します。
      LocalDate resolveDate​(Map<TemporalField,​Long> fieldValues, ResolverStyle resolverStyle)
      解析されたChronoFieldの値を解析時の日付に解決します。
      ZonedDateTime zonedDateTime​(Instant instant, ZoneId zone)
      Instantからこの暦でISOのゾーン付きの日付/時間を取得します。
      ZonedDateTime zonedDateTime​(TemporalAccessor temporal)
      もう一方の日付/時間オブジェクトからISOのゾーン付きの日付/時間を取得します。
    • フィールドの詳細

      • INSTANCE

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

      • getId

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

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

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

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

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

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

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

        public LocalDate date​(int prolepticYear,
                              int month,
                              int dayOfMonth)
        先発暦の年、月、および月間通算日フィールドから、ISO暦のローカル日付を取得します。

        これは、LocalDate.of(int, int, int)と同等です。

        定義:
        インタフェースChronologydate
        パラメータ:
        prolepticYear - ISO暦の先発暦の年
        month - ISO暦の月
        dayOfMonth - ISO暦の月の日
        戻り値:
        ISO暦のローカル日付、null以外
        例外:
        DateTimeException - 日付を作成できない場合
      • dateYearDay

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

        public LocalDate dateYearDay​(int prolepticYear,
                                     int dayOfYear)
        先発暦の年および年間通算日フィールドから、ISO暦のローカル日付を取得します。

        これは、LocalDate.ofYearDay(int, int)と同等です。

        定義:
        インタフェースChronologydateYearDay
        パラメータ:
        prolepticYear - ISO暦の先発暦の年
        dayOfYear - ISO暦の年の日
        戻り値:
        ISO暦のローカル日付、null以外
        例外:
        DateTimeException - 日付を作成できない場合
      • dateEpochDay

        public LocalDate dateEpochDay​(long epochDay)
        エポック日からISO暦のローカル日付を取得します。

        これは、LocalDate.ofEpochDay(long)と同等です。

        定義:
        インタフェースChronologydateEpochDay
        パラメータ:
        epochDay - エポック日
        戻り値:
        ISO暦のローカル日付、null以外
        例外:
        DateTimeException - 日付を作成できない場合
      • epochSecond

        public long epochSecond​(int prolepticYear,
                                int month,
                                int dayOfMonth,
                                int hour,
                                int minute,
                                int second,
                                ZoneOffset zoneOffset)
        1970-01-01T00:00:00Zの時代からの秒数を取得します。

        秒数は、年、月、日、時、分、秒、およびzoneOffsetを使用して計算されます。

        定義:
        インタフェースChronology内のepochSecond
        パラメータ:
        prolepticYear - MIN_YEARからMAX_YEARまでの年
        month - 1から12までの月
        dayOfMonth - 1日から31日
        hour - 時間帯0から23
        minute - 分、0から59まで
        second - 秒、0から59まで
        zoneOffset - ゾーン・オフセット、not null
        戻り値:
        1970-01-01T00:00:00Zを基準にした秒数。
        例外:
        DateTimeException - 引数の値が範囲外である場合、または月の日付が無効である場合
        導入されたバージョン:
        9
      • zonedDateTime

        public ZonedDateTime zonedDateTime​(Instant instant,
                                           ZoneId zone)
        Instantからこの暦でISOのゾーン付きの日付/時間を取得します。

        これは、ZonedDateTime.ofInstant(Instant, ZoneId)と同等です。

        定義:
        インタフェースChronologyzonedDateTime
        パラメータ:
        instant - 日付/時間の作成元のインスタント、null以外
        zone - タイムゾーン、null以外
        戻り値:
        ゾーン付きの日付/時間、null以外
        例外:
        DateTimeException - 結果がサポートされている範囲を超える場合
      • dateNow

        public LocalDate dateNow()
        デフォルトのタイムゾーンのシステム・クロックから現在のISO暦のローカル日付を取得します。

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

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

        定義:
        インタフェースChronologydateNow
        戻り値:
        システムクロックとデフォルトのタイムゾーンを使用した現在のISO暦のローカル日付、null以外
        例外:
        DateTimeException - 日付を作成できない場合
      • dateNow

        public LocalDate dateNow​(ZoneId zone)
        指定されたタイムゾーンのシステム・クロックから現在のISO暦のローカル日付を取得します。

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

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

        定義:
        インタフェースChronologydateNow
        パラメータ:
        zone - 使用するゾーンID、null以外
        戻り値:
        システムクロックを使用した現在のISO暦のローカル日付、null以外
        例外:
        DateTimeException - 日付を作成できない場合
      • dateNow

        public LocalDate dateNow​(Clock clock)
        指定されたクロックから現在のISO暦のローカル日付を取得します。

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

        定義:
        インタフェースChronologydateNow
        パラメータ:
        clock - 使用するクロック、null以外
        戻り値:
        現在のISO暦のローカル日付、null以外
        例外:
        DateTimeException - 日付を作成できない場合
      • isLeapYear

        public boolean isLeapYear​(long prolepticYear)
        ISO先発暦体系のルールに従って、年がうるう年であるかどうかをチェックします。

        このメソッドは、時系列全体にわたって、うるう年の現在のルールを適用します。 一般に、年は4で割り切れる場合にうるう年です。 ただし、400で割り切れる年を除き、100で割り切れる年はうるう年ではありません。

        たとえば、1904年は4で割り切れるうるう年です。1900年は100で割り切れるため、うるう年ではありませんでしたが、2000年は400で割り切れるため、うるう年でした。

        計算は先発暦で、遠い将来および遠い過去にも同じルールが適用されます。 これは歴史的には正確ではありませんが、ISO-8601規格には正確です。

        定義:
        インタフェースChronologyisLeapYear
        パラメータ:
        prolepticYear - チェックするISO暦の先発暦の年
        戻り値:
        年がうるう年の場合はtrue、それ以外の場合はfalse
      • resolveDate

        public LocalDate resolveDate​(Map<TemporalField,​Long> fieldValues,
                                     ResolverStyle resolverStyle)
        解析されたChronoFieldの値を解析時の日付に解決します。

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

        ISO暦体系のChronoFieldインスタンスは次のように解決されます。

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

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

        public Period period​(int years,
                             int months,
                             int days)
        この暦の期間を年、月および日に基づいて取得します。

        これは、指定された年、月、日を使用して、このISO暦の暦に関連付けられた期間を返します。 詳細は、Periodを参照してください。

        定義:
        インタフェースChronologyperiod
        パラメータ:
        years - 年数、負の場合もある
        months - 年数、負の場合もある
        days - 年数、負の場合もある
        戻り値:
        nullではないISO期間