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

列挙型クラスChronoUnit

java.lang.Object
java.lang.Enum<ChronoUnit>
java.time.temporal.ChronoUnit
すべての実装されたインタフェース:
Serializable, Comparable<ChronoUnit>, Constable, TemporalUnit

public enum ChronoUnit extends Enum<ChronoUnit> implements TemporalUnit
日付期間の単位の標準セット。

この単位セットは、日付、時間、または日付/時間を操作するための単位ベースのアクセスを提供します。 標準の単位セットは、TemporalUnitを実装することによって拡張できます。

これらの単位は、複数の暦体系に適用できると想定されています。 たとえば、ISO以外の暦体系の多くは、ルールは多少異なっても、年、月、および日の単位を定義しています。 各単位のドキュメントには、その単位の動作が説明されています。

実装要件:
これは不変でスレッドセーフな最終の列挙型です。
導入されたバージョン:
1.8
  • ネストされたクラスのサマリー

    クラスjava.lang.Enumで宣言されたネストされたクラス/インタフェース

    Enum.EnumDesc<E extends Enum<E>>
  • 列挙型定数のサマリー

    列挙型定数
    列挙型定数
    説明
    1世紀の概念を表す単位。
    1日の概念を表す単位。
    1デケイドの概念を表す単位。
    1紀元の概念を表す単位。
    永遠の概念を表す人為的単位。
    午前/午後で使用される半日の概念を表す単位。
    1時間の概念を表す単位。
    1マイクロ秒の概念を表す単位。
    1ミレニアムの概念を表す単位。
    1ミリ秒の概念を表す単位。
    1分の概念を表す単位。
    1か月の概念を表す単位。
    1ナノ秒の概念を表す単位。サポートされている最小の時間単位。
    1秒の概念を表す単位。
    1週の概念を表す単位。
    1年の概念を表す単位。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    <R extends Temporal>
    R
    addTo(R temporal, long amount)
    指定された期間を加算して、指定された時間的オブジェクトのコピーを返します。
    long
    between(Temporal temporal1Inclusive, Temporal temporal2Exclusive)
    2つの時間的オブジェクトの間の時間量を計算します。
    ISO暦体系におけるこの単位の推定デュレーションを取得します。
    boolean
    この単位が日付の単位かどうかをチェックします。
    boolean
    単位のデュレーションが推定値かどうかをチェックします。
    boolean
    この単位が時間の単位かどうかをチェックします。
    宣言に含まれるとおりのenum定数の名前を返します。
    static ChronoUnit
    指定された名前を持つこのクラスのenum定数を返します。
    static ChronoUnit[]
    この列挙クラスの定数を含む配列を宣言されている順序で 返します。

    クラス java.lang.Enumで宣言されたメソッド

    clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

    クラス java.lang.Objectで宣言されたメソッド

    getClass, notify, notifyAll, wait, wait, wait

    インタフェース java.time.temporal.TemporalUnitで宣言されたメソッド

    isSupportedBy
  • 列挙型定数の詳細

    • NANOS

      public static final ChronoUnit NANOS
      1ナノ秒の概念を表す単位。サポートされている最小の時間単位。 ISO暦体系の場合、これは秒の単位の1,000,000,000分の1と等しくなります。
    • MICROS

      public static final ChronoUnit MICROS
      1マイクロ秒の概念を表す単位。 ISO暦体系の場合、これは秒の単位の1,000,000分の1と等しくなります。
    • MILLIS

      public static final ChronoUnit MILLIS
      1ミリ秒の概念を表す単位。 ISO暦体系の場合、これは秒の単位の1000分の1と等しくなります。
    • SECONDS

      public static final ChronoUnit SECONDS
      1秒の概念を表す単位。 ISO暦体系の場合、うるう秒を除いて、これはSI単位系の秒と等しくなります。
    • MINUTES

      public static final ChronoUnit MINUTES
      1分の概念を表す単位。 ISO暦体系の場合、これは60秒と等しくなります。
    • HOURS

      public static final ChronoUnit HOURS
      1時間の概念を表す単位。 ISO暦体系の場合、これは60分と等しくなります。
    • HALF_DAYS

      public static final ChronoUnit HALF_DAYS
      午前/午後で使用される半日の概念を表す単位。 ISO暦体系の場合、これは12時間と等しくなります。
    • DAYS

      public static final ChronoUnit DAYS
      1日の概念を表す単位。 ISO暦体系の場合、これは深夜零時から深夜零時までの標準的な1日です。 1日の推定デュレーションは24時間です。

      他の暦体系で使用される場合、これは地球上の日の出と日の入りによって定義される日に対応する必要があります。 日が深夜零時に始まる必要はありません。暦体系の間の変換では、日付は正午において等価になるべきです。

    • WEEKS

      public static final ChronoUnit WEEKS
      1週の概念を表す単位。 ISO暦体系の場合、これは7日と等しくなります。

      他の暦体系で使用される場合、これは整数の日数に対応する必要があります。

    • MONTHS

      public static final ChronoUnit MONTHS
      1か月の概念を表す単位。 ISO暦体系の場合、1か月の長さは月によって異なります。 1か月の推定デュレーションは365.2425日の12分の1です。

      他の暦体系で使用される場合、これは整数の日数に対応する必要があります。

    • YEARS

      public static final ChronoUnit YEARS
      1年の概念を表す単位。 ISO暦体系の場合、これは12か月と等しくなります。 1年の推定デュレーションは365.2425日です。

      他の暦体系で使用される場合、これは太陽を中心とした地球の周回によって定義される1年にほぼ等しい、整数の日数または月数に対応する必要があります。

    • DECADES

      public static final ChronoUnit DECADES
      1デケイドの概念を表す単位。 ISO暦体系の場合、これは10年と等しくなります。

      他の暦体系で使用される場合、これは整数の日数に対応する必要があり、通常は整数の年数です。

    • CENTURIES

      public static final ChronoUnit CENTURIES
      1世紀の概念を表す単位。 ISO暦体系の場合、これは100年と等しくなります。

      他の暦体系で使用される場合、これは整数の日数に対応する必要があり、通常は整数の年数です。

    • MILLENNIA

      public static final ChronoUnit MILLENNIA
      1ミレニアムの概念を表す単位。 ISO暦体系の場合、これは1000年と等しくなります。

      他の暦体系で使用される場合、これは整数の日数に対応する必要があり、通常は整数の年数です。

    • ERAS

      public static final ChronoUnit ERAS
      1紀元の概念を表す単位。 ISO暦体系には紀元がないため、日付または日付/時間に紀元を加算することはできません。 紀元の推定デュレーションは1,000,000,000年として人為的に定義されています。

      他の暦体系で使用される場合、この単位に制約はありません。

    • FOREVER

      public static final ChronoUnit FOREVER
      永遠の概念を表す人為的単位。 これは主にTemporalFieldとともに使用され、年や紀元のような無制限のフィールドを表します。 このユニットの推定期間は、Durationによってサポートされる最大の期間として人為的に定義されます。
  • メソッドの詳細

    • values

      public static ChronoUnit[] values()
      この列挙クラスの定数を含む配列を宣言されている順序で 返します。
      戻り値:
      この列挙クラスの定数を宣言されている順序で含む配列
    • valueOf

      public static ChronoUnit valueOf(String name)
      指定された名前を持つこのクラスのenum定数を返します。 文字列は、このクラスでenum定数を宣言するために使用される識別子とexactlyと一致する必要があります。 (不適切な空白文字は許可されません。)
      パラメータ:
      name - 返される列挙型定数の名前。
      戻り値:
      指定された名前を持つ列挙型定数
      例外:
      IllegalArgumentException - この列挙型クラスに指定された名前の定数がない場合
      NullPointerException - 引数がnullの場合
    • getDuration

      public Duration getDuration()
      ISO暦体系におけるこの単位の推定デュレーションを取得します。

      このクラスの単位すべてに推定デュレーションがあります。 日の長さはサマー・タイムのために変化し、月の長さは様々です。

      定義:
      インタフェースTemporalUnitgetDuration
      戻り値:
      この単位の推定デュレーション。null以外
    • isDurationEstimated

      public boolean isDurationEstimated()
      単位のデュレーションが推定値かどうかをチェックします。

      このクラスの時間の単位はすべて正確と見なされ、このクラスの日付の単位はすべて推定と見なされます。

      この定義では、うるう秒は無視されますが、日の長さはサマー・タイムのために変化し、月の長さは様々であることが考慮されます。

      定義:
      インタフェースTemporalUnitisDurationEstimated
      戻り値:
      デュレーションが推定の場合はtrue、正確な場合はfalse
    • isDateBased

      public boolean isDateBased()
      この単位が日付の単位かどうかをチェックします。

      日から紀元まで(これらを含む)の単位は、すべて日付ベースです。 時間ベースの単位とFOREVERからはfalseが返されます。

      定義:
      インタフェースTemporalUnitisDateBased
      戻り値:
      日付の単位の場合はtrue、時間の単位の場合はfalse
    • isTimeBased

      public boolean isTimeBased()
      この単位が時間の単位かどうかをチェックします。

      ナノ秒から半日まで(これらを含む)の単位は、すべて時間ベースです。 日付ベースの単位とFOREVERからはfalseが返されます。

      定義:
      インタフェースTemporalUnitisTimeBased
      戻り値:
      時間の単位の場合はtrue、日付の単位の場合はfalse
    • addTo

      public <R extends Temporal> R addTo(R temporal, long amount)
      次のインタフェースからコピーされた説明: TemporalUnit
      指定された期間を加算して、指定された時間的オブジェクトのコピーを返します。

      加算される期間はこの単位の倍数です。 たとえば、このメソッドを使用して、ある日付に「3日」を加算することができます。それには、「日」を表すインスタンスに対してこのメソッドを呼び出し、日付と期間「3」を渡します。 加算する期間は負でもよく、それは減算と等価です。

      このメソッドを使用する等価な方法が2つあります。 1つ目はこのメソッドを直接呼び出すことです。 2つ目はTemporal.plus(long, TemporalUnit)を使用することです。

         // these two lines are equivalent, but the second approach is recommended
         temporal = thisUnit.addTo(temporal);
         temporal = temporal.plus(thisUnit);
       
      2つ目の方法plus(TemporalUnit)の方がコードを読むときにわかりやすいため、これを使用することをお薦めします。

      実装では、問合せや計算を実行する場合、ChronoUnitで使用可能な単位、またはChronoFieldで使用可能なフィールドを使用するようにしてください。 単位がサポートされていない場合は、UnsupportedTemporalTypeExceptionをスローする必要があります。

      実装では、指定された時間的オブジェクトを変更してはいけません。 かわりに、元のオブジェクトの調整済のコピーを返す必要があります。 これは、不変および可変の実装に安全で等価な動作を提供します。

      定義:
      インタフェースTemporalUnitaddTo
      型パラメータ:
      R - Temporalオブジェクトの型
      パラメータ:
      temporal - 調整する時間的オブジェクト。null以外
      amount - 加算するこの単位の量。正または負
      戻り値:
      調整された時間的オブジェクト。null以外
    • between

      public long between(Temporal temporal1Inclusive, Temporal temporal2Exclusive)
      次のインタフェースからコピーされた説明: TemporalUnit
      2つの時間的オブジェクトの間の時間量を計算します。

      これは、この単位で量を計算します。 開始点と終了点は時間的オブジェクトで指定され、互換性のある型でなければなりません。 実装では、2番目の型を最初の型のインスタンスに変換してから、量を計算します。 終了が開始より前である場合、結果は負になります。 たとえば、2つの時間的オブジェクト間の時間数での量は、HOURS.between(startTime, endTime)を使用して計算できます。

      計算では、2つの時間的オブジェクト間の完全な単位の数を表す整数を返します。 たとえば、時間11:30と13:29の間の量は、2時間には1分足りないため、時間数では1時間だけになります。

      このメソッドを使用する等価な方法が2つあります。 1つ目はこのメソッドを直接呼び出すことです。 2つ目はTemporal.until(Temporal, TemporalUnit)を使用することです。

         // these two lines are equivalent
         between = thisUnit.between(start, end);
         between = start.until(end, thisUnit);
       
      この選択は、コードが読みやすくなるのはどちらかに基づいて行ってください。

      たとえば、このメソッドを使用すると、2つの日付間の日数を計算できます。

        long daysBetween = DAYS.between(start, end);
        // or alternatively
        long daysBetween = start.until(end, DAYS);
       

      実装では、問合せや計算を実行する場合、ChronoUnitで使用可能な単位、またはChronoFieldで使用可能なフィールドを使用するようにしてください。 単位がサポートされていない場合は、UnsupportedTemporalTypeExceptionをスローする必要があります。 実装では、指定された時間的オブジェクトを変更してはいけません。

      定義:
      インタフェースTemporalUnitbetween
      パラメータ:
      temporal1Inclusive - ベースの時間的オブジェクト。null以外
      temporal2Exclusive - 他方の時間的オブジェクト(これを含まない)。null以外
      戻り値:
      temporal1Inclusiveとtemporal2Exclusiveの間の時間量をこの単位で表したもの。temporal2Exclusiveがtemporal1Inclusiveより後であれば正、前であれば負
    • toString

      public String toString()
      次のクラスからコピーされた説明: Enum
      宣言に含まれるとおりのenum定数の名前を返します。 このメソッドは不要な場合や不適切な場合にオーバーライドできます。 列挙型クラスは、より多くの"programmer-friendly"文字列形式が存在する場合、このメソッドをオーバーライドする必要があります。
      定義:
      インタフェースTemporalUnittoString
      オーバーライド:
      クラスEnum<ChronoUnit>toString
      戻り値:
      このenum定数の名前