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

クラスDuration

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

    public final class Duration
    extends Object
    implements TemporalAmount, Comparable<Duration>, Serializable
    時間ベースの時間(34.5秒など)。

    このクラスは、秒とナノ秒に基づいて時間量をモデル化します。 他のデュレーション・ベース単位(分や時など)を使用してアクセスできます。 DAYS単位も使用できます。これは、24時間と完全に同等として扱われ、サマー・タイムの影響は無視されます。 このクラスの日付ベースで同等のものについては、Periodを参照してください。

    物理デュレーションは無限の長さにできます。 実用性のために、デュレーションはInstantと同様の制約で保存されます。 デュレーションはナノ秒分解能を使用し、最大値はlongで保持できる秒です。 これは、宇宙の現在の推定年齢よりも大きいです。

    デュレーションの範囲には、longよりも大きな数値の保存が必要です。 これを実現するために、このクラスは秒を表すlongと、1秒のうちのナノ秒を表すint(常に0と999,999,999の間になる)を保存します。 モデルは有向デュレーションなので、デュレーションは負も可能です。

    デュレーションは秒単位で測定されますが、原子時計に基づく科学的SI秒定義と同じとは限りません。 この違いはうるう秒付近で測定されるデュレーションにのみ影響し、ほとんどのアプリケーションには影響しないはずです。 秒とタイム・スケールの意味についてはInstantを参照してください。

    これは値ベースのクラスです。単位元に依存するオペレーション(参照型等価(==)、単位元ハッシュ・コード、同期化を含む)をDurationのインスタンスで使用すると、予期しない結果が発生する場合があるため、使用しないことをお薦めします。 比較する場合は、equalsメソッドを使用することをお薦めします。

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

      フィールド 
      修飾子と型 フィールド 説明
      static Duration ZERO
      ゼロのデュレーションを表す定数です。
    • メソッドのサマリー

      修飾子と型 メソッド 説明
      Duration abs()
      正の長さを使って、このデュレーションのコピーを返します。
      Temporal addTo​(Temporal temporal)
      指定された時間的オブジェクトにこのデュレーションを加算します。
      static Duration between​(Temporal startInclusive, Temporal endExclusive)
      2つの時間的オブジェクト間のデュレーションを表すDurationを取得します。
      int compareTo​(Duration otherDuration)
      このデュレーションを指定されたDurationと比較します。
      Duration dividedBy​(long divisor)
      指定された値で除算された、このデュレーションのコピーを返します。
      long dividedBy​(Duration divisor)
      このDuration内で指定されたDurationが発生した回数を返します。
      boolean equals​(Object otherDuration)
      指定されたDurationとこのデュレーションが等しいかどうかをチェックします。
      static Duration from​(TemporalAmount amount)
      時間的な量からDurationのインスタンスを取得します。
      long get​(TemporalUnit unit)
      要求された単位の値を取得します。
      int getNano()
      このデュレーションの秒内のナノ秒数を取得します。
      long getSeconds()
      このデュレーションの秒数を取得します。
      List<TemporalUnit> getUnits()
      このデュレーションでサポートされている単位セットを取得します。
      int hashCode()
      このデュレーションのハッシュ・コード。
      boolean isNegative()
      このデュレーションが負かどうかをチェックします(ゼロを除く)。
      boolean isZero()
      このデュレーションが長さゼロかどうかをチェックします。
      Duration minus​(long amountToSubtract, TemporalUnit unit)
      指定されたデュレーションを減算した、このデュレーションのコピーを返します。
      Duration minus​(Duration duration)
      指定されたデュレーションを減算した、このデュレーションのコピーを返します。
      Duration minusDays​(long daysToSubtract)
      標準24時間日の日数で指定されたデュレーションを減算した、このデュレーションのコピーを返します。
      Duration minusHours​(long hoursToSubtract)
      時間数で指定されたデュレーションを減算した、このデュレーションのコピーを返します。
      Duration minusMillis​(long millisToSubtract)
      ミリ秒数で指定されたデュレーションを減算した、このデュレーションのコピーを返します。
      Duration minusMinutes​(long minutesToSubtract)
      分数で指定されたデュレーションを減算した、このデュレーションのコピーを返します。
      Duration minusNanos​(long nanosToSubtract)
      ナノ秒数で指定されたデュレーションを減算した、このデュレーションのコピーを返します。
      Duration minusSeconds​(long secondsToSubtract)
      秒数で指定されたデュレーションを減算した、このデュレーションのコピーを返します。
      Duration multipliedBy​(long multiplicand)
      そのスカラーで乗算された、このデュレーションのコピーを返します。
      Duration negated()
      長さを否定して、このデュレーションのコピーを返します。
      static Duration of​(long amount, TemporalUnit unit)
      指定された単位での量を表すDurationを取得します。
      static Duration ofDays​(long days)
      標準24時間日の数を表すDurationを取得します。
      static Duration ofHours​(long hours)
      標準の時間数を表すDurationを取得します。
      static Duration ofMillis​(long millis)
      ミリ秒数を表すDurationを取得します。
      static Duration ofMinutes​(long minutes)
      標準の分数を表すDurationを取得します。
      static Duration ofNanos​(long nanos)
      ナノ秒数を表すDurationを取得します。
      static Duration ofSeconds​(long seconds)
      秒数を表すDurationを取得します。
      static Duration ofSeconds​(long seconds, long nanoAdjustment)
      秒数およびナノ秒数での調整を表すDurationを取得します。
      static Duration parse​(CharSequence text)
      PnDTnHnMn.nSなどのテキスト文字列からDurationを取得します。
      Duration plus​(long amountToAdd, TemporalUnit unit)
      指定されたデュレーションを加算した、このデュレーションのコピーを返します。
      Duration plus​(Duration duration)
      指定されたデュレーションを加算した、このデュレーションのコピーを返します。
      Duration plusDays​(long daysToAdd)
      標準24時間日の日数で指定されたデュレーションを加算した、このデュレーションのコピーを返します。
      Duration plusHours​(long hoursToAdd)
      時間数で指定されたデュレーションを加算した、このデュレーションのコピーを返します。
      Duration plusMillis​(long millisToAdd)
      ミリ秒数で指定されたデュレーションを加算した、このデュレーションのコピーを返します。
      Duration plusMinutes​(long minutesToAdd)
      分数で指定されたデュレーションを加算した、このデュレーションのコピーを返します。
      Duration plusNanos​(long nanosToAdd)
      ナノ秒数で指定されたデュレーションを加算した、このデュレーションのコピーを返します。
      Duration plusSeconds​(long secondsToAdd)
      秒数で指定されたデュレーションを加算した、このデュレーションのコピーを返します。
      Temporal subtractFrom​(Temporal temporal)
      指定された時間的オブジェクトからこのデュレーションを減算します。
      long toDays()
      このデュレーションの日数を取得します。
      long toDaysPart()
      期間内の日数を抽出します。
      long toHours()
      このデュレーションの時数を取得します。
      int toHoursPart()
      期間中の時間数を抽出します。
      long toMillis()
      このデュレーションを合計長(ミリ秒単位)に変換します。
      int toMillisPart()
      期間のミリ秒数を抽出します。
      long toMinutes()
      このデュレーションの分数を取得します。
      int toMinutesPart()
      期間中の分数を抽出します。
      long toNanos()
      このデュレーションを合計長(longで表現されるナノ秒単位)に変換します。
      int toNanosPart()
      持続時間の秒以内にナノ秒の部分を取得します。
      long toSeconds()
      このデュレーションの秒数を取得します。
      int toSecondsPart()
      期間中の秒数を抽出します。
      String toString()
      このデュレーションの、ISO-8601秒ベース表現を使用した文字列表現です(PT8H6M12.345Sなど)。
      Duration truncatedTo​(TemporalUnit unit)
      指定された単位に切り捨てられたこのDurationのコピーを返します。
      Duration withNanos​(int nanoOfSecond)
      指定されたナノ秒を使って、このデュレーションのコピーを返します。
      Duration withSeconds​(long seconds)
      指定された秒数を使って、このデュレーションのコピーを返します。
    • フィールドの詳細

      • ZERO

        public static final Duration ZERO
        ゼロのデュレーションを表す定数です。
    • メソッドの詳細

      • ofDays

        public static Duration ofDays​(long days)
        標準24時間日の数を表すDurationを取得します。

        秒は、日の標準定義に基づいて計算されます(各日は86400秒、つまり24時間/日)。 秒の中のナノ秒のフィールドはゼロに設定されます。

        パラメータ:
        days - 日数、正または負
        戻り値:
        Duration、nullでない
        例外:
        ArithmeticException - 入力日がDurationの容量を超える場合
      • ofHours

        public static Duration ofHours​(long hours)
        標準の時間数を表すDurationを取得します。

        秒は、時の標準定義に基づいて計算されます(各時は3600秒)。 秒の中のナノ秒のフィールドはゼロに設定されます。

        パラメータ:
        hours - 時数、正または負
        戻り値:
        Duration、nullでない
        例外:
        ArithmeticException - 入力時がDurationの容量を超える場合
      • ofMinutes

        public static Duration ofMinutes​(long minutes)
        標準の分数を表すDurationを取得します。

        秒は、分の標準定義に基づいて計算されます(各分は60秒)。 秒の中のナノ秒のフィールドはゼロに設定されます。

        パラメータ:
        minutes - 分数、正または負
        戻り値:
        Duration、nullでない
        例外:
        ArithmeticException - 入力された分数がDurationの容量を超える場合
      • ofSeconds

        public static Duration ofSeconds​(long seconds)
        秒数を表すDurationを取得します。

        秒の中のナノ秒のフィールドはゼロに設定されます。

        パラメータ:
        seconds - 秒数、正または負
        戻り値:
        Duration、nullでない
      • ofSeconds

        public static Duration ofSeconds​(long seconds,
                                         long nanoAdjustment)
        秒数およびナノ秒数での調整を表すDurationを取得します。

        このメソッドには任意のナノ秒数を渡すことができます。 ファクトリは、保存済みナノ秒の範囲が0から999,999,999であることを保証するために、秒とナノ秒の値を変更します。 たとえば、次のような場合、期間はまったく同じになります。

          Duration.ofSeconds(3, 1);
          Duration.ofSeconds(4, -999_999_999);
          Duration.ofSeconds(2, 1000_000_001);
         

        パラメータ:
        seconds - 秒数、正または負
        nanoAdjustment - 秒数に対するナノ秒調整、正または負
        戻り値:
        Duration、nullでない
        例外:
        ArithmeticException - 調整によって秒がDurationの容量を超える場合
      • ofMillis

        public static Duration ofMillis​(long millis)
        ミリ秒数を表すDurationを取得します。

        秒とナノ秒が、指定されたミリ秒から抽出されます。

        パラメータ:
        millis - ミリ秒数、正または負
        戻り値:
        Duration、nullでない
      • ofNanos

        public static Duration ofNanos​(long nanos)
        ナノ秒数を表すDurationを取得します。

        秒とナノ秒が、指定されたナノ秒から抽出されます。

        パラメータ:
        nanos - ナノ秒数、正または負
        戻り値:
        Duration、nullでない
      • of

        public static Duration of​(long amount,
                                  TemporalUnit unit)
        指定された単位での量を表すDurationを取得します。

        パラメータは、6 Hoursのように、2つの部分から成る語句を表しています。 次に例を示します。

          Duration.of(3, SECONDS);
          Duration.of(465, HOURS);
         
        単位のサブセットのみがこのメソッドで受け入れられます。 単位は、正確なデュレーション、またはChronoUnit.DAYS(24時間として扱われる)を持つ必要があります。 他の単位は例外をスローします。

        パラメータ:
        amount - デュレーションの量、単位に基づいて測定される、正または負
        unit - デュレーションが測定される単位、正確なデュレーションを持つ必要がある、nullでない
        戻り値:
        Duration、nullでない
        例外:
        DateTimeException - 期間単位が推定デュレーションを持つ場合
        ArithmeticException - 数値オーバーフローが発生した場合
      • from

        public static Duration from​(TemporalAmount amount)
        時間的な量からDurationのインスタンスを取得します。

        これは、指定された量に基づいてデュレーションを取得します。 TemporalAmountは時間量を表し(日付ベースまたは時間ベース)、このファクトリはこれをデュレーションに抽出します。

        この変換では、量から単位のセットをループし、単位のデュレーションを使用して合計Durationを計算します。 単位のサブセットのみがこのメソッドで受け入れられます。 単位は、正確なデュレーション、またはChronoUnit.DAYS(24時間として扱われる)を持つ必要があります。 他の単位が見つかった場合は、例外がスローされます。

        パラメータ:
        amount - 変換する時間量、nullでない
        戻り値:
        同等のデュレーション、nullでない
        例外:
        DateTimeException - Durationに変換できない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • parse

        public static Duration parse​(CharSequence text)
        PnDTnHnMn.nSなどのテキスト文字列からDurationを取得します。

        これは、toString()によって作成される文字列を含めて、デュレーションのテキスト表現を解析します。 受け入れられるフォーマットは、日が正確に24時間と見なされる、ISO-8601デュレーション・フォーマットPnDTnHnMn.nSベースです。

        文字列は、ASCIIマイナスまたはプラス記号で示されるオプション記号で始まります。 マイナスの場合は、期間全体がマイナスになります。 ASCII文字Pが大文字または小文字で続きます。 その後は4つセクションで、それぞれ数字と接尾辞で構成されます。 セクションの接尾辞はASCIIのD、H、MおよびSで、それぞれ日、時、分、秒を表し、大文字または小文字を使用できます。 接尾辞は順番に出現する必要があります。 時、分または秒セクションの最初の出現(出現する場合)の前に、ASCII文字Tが出現する必要があります。 4つのセクションの少なくとも1つが存在する必要があります。Tが存在する場合は、Tの後に少なくとも1つのセクションが必要です。 各セクションの数字部分は、1つ以上のASCII数字で構成されている必要があります。 数字の前に、ASCIIマイナスまたはプラス記号を付けることができます。 日、時間、分の数は、longを解析する必要があります。 秒数は、longを任意の割合で解析する必要があります。 小数点にはドットまたはカンマを使用できます。 小数部分には0から9の数字を使用できます。

        先頭のプラス/マイナス記号と他の単位の負の値は、ISO-8601標準の一部ではありません。

            "PT20.345S" -- parses as "20.345 seconds"
            "PT15M"     -- parses as "15 minutes" (where a minute is 60 seconds)
            "PT10H"     -- parses as "10 hours" (where an hour is 3600 seconds)
            "P2D"       -- parses as "2 days" (where a day is 24 hours or 86400 seconds)
            "P2DT3H4M"  -- parses as "2 days, 3 hours and 4 minutes"
            "PT-6H3M"    -- parses as "-6 hours and +3 minutes"
            "-PT6H3M"    -- parses as "-6 hours and -3 minutes"
            "-PT-6H+3M"  -- parses as "+6 hours and -3 minutes"
         

        パラメータ:
        text - 解析するテキスト。null以外
        戻り値:
        解析されたデュレーション、nullでない
        例外:
        DateTimeParseException - テキストがデュレーションに解析できない場合
      • between

        public static Duration between​(Temporal startInclusive,
                                       Temporal endExclusive)
        2つの時間的オブジェクト間のデュレーションを表すDurationを取得します。

        これは、2つの時間的オブジェクト間のデュレーションを計算します。 オブジェクトが別の型の場合、デュレーションは最初のオブジェクトの型に基づいて計算されます。 たとえば、最初の引数がLocalTimeの場合、2番目の引数はLocalTimeに変換されます。

        指定された時間的オブジェクトはSECONDS単位をサポートする必要があります。 精度を最大化するために、NANOS単位またはNANO_OF_SECONDフィールドをサポートすることをお薦めします。

        このメソッドの結果は、終了が開始より前である場合に、負の期間になることがあります。 正のデュレーションを取得することを保証するには、結果に対してabs()を呼び出してください。

        パラメータ:
        startInclusive - 開始インスタント(これを含む)、nullでない
        endExclusive - 終了インスタント(これを含まない)、nullでない
        戻り値:
        Duration、nullでない
        例外:
        DateTimeException - 時間的オブジェクト間の秒を取得できない場合
        ArithmeticException - 計算がDurationの容量を超える場合
      • get

        public long get​(TemporalUnit unit)
        要求された単位の値を取得します。

        これは、サポートされる2つの単位(SECONDSNANOS)の値を返します。 他のすべての単位は例外をスローします。

        定義:
        インタフェースTemporalAmountget
        パラメータ:
        unit - 値を返す対象のTemporalUnit
        戻り値:
        単位のlong値
        例外:
        DateTimeException - 単位がサポートされていない場合
        UnsupportedTemporalTypeException - 単位がサポートされていない場合
      • getUnits

        public List<TemporalUnit> getUnits()
        このデュレーションでサポートされている単位セットを取得します。

        サポートされる単位はSECONDSNANOSです。 これらは秒、ナノ秒の順序で返されます。

        このセットは、get(TemporalUnit)と一緒に使用して、期間の全体の状態にアクセスできます。

        定義:
        インタフェースTemporalAmountgetUnits
        戻り値:
        秒およびナノ秒単位を含むリスト、nullでない
      • isZero

        public boolean isZero()
        このデュレーションが長さゼロかどうかをチェックします。

        Durationは時系列上の2点間の方向を有向距離を表し、正、ゼロまたは負の可能性があります。 このメソッドは長さがゼロかどうかをチェックします。

        戻り値:
        このデュレーションの合計長がゼロの場合はtrue
      • isNegative

        public boolean isNegative()
        このデュレーションが負かどうかをチェックします(ゼロを除く)。

        Durationは時系列上の2点間の方向を有向距離を表し、正、ゼロまたは負の可能性があります。 このメソッドは長さがゼロより短いかどうかをチェックします。

        戻り値:
        このデュレーションの合計長がゼロより短い場合はtrue
      • getSeconds

        public long getSeconds()
        このデュレーションの秒数を取得します。

        デュレーションの長さは2つのフィールド(秒とナノ秒)を使用して保存されます。 ナノ秒部分は0から999,999,999の値で、秒単位の長さへの調整です。 合計デュレーションは、このメソッドとgetNano()を呼び出すことによって定義されます。

        Durationは時系列上の2点間の有向距離を表します。 負のデュレーションは、秒部分のマイナス記号で表現されます。 -1ナノ秒のデュレーションは-1秒+999,999,999ナノ秒として保存されます。

        戻り値:
        デュレーションの長さの整数秒部分、正または負
      • getNano

        public int getNano()
        このデュレーションの秒内のナノ秒数を取得します。

        デュレーションの長さは2つのフィールド(秒とナノ秒)を使用して保存されます。 ナノ秒部分は0から999,999,999の値で、秒単位の長さへの調整です。 合計デュレーションは、このメソッドとgetSeconds()を呼び出すことによって定義されます。

        Durationは時系列上の2点間の有向距離を表します。 負のデュレーションは、秒部分のマイナス記号で表現されます。 -1ナノ秒のデュレーションは-1秒+999,999,999ナノ秒として保存されます。

        戻り値:
        デュレーションの長さの秒の中のナノ秒部分、0から999,999,999
      • withSeconds

        public Duration withSeconds​(long seconds)
        指定された秒数を使って、このデュレーションのコピーを返します。

        これは、指定された秒付きのデュレーションを返します(このデュレーションの1秒のうちのナノ秒部分を保持)。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        seconds - 表現する秒、負も可
        戻り値:
        この期間と要求された秒に基づくDuration、nullでない
      • withNanos

        public Duration withNanos​(int nanoOfSecond)
        指定されたナノ秒を使って、このデュレーションのコピーを返します。

        これは、指定された1秒のうちのナノ秒付きのデュレーションを返します(このデュレーションの秒部分を保持)。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        nanoOfSecond - 表現する1秒のうちのナノ秒、0から999,999,999
        戻り値:
        この期間と要求された1秒のうちのナノ秒に基づくDuration、nullでない
        例外:
        DateTimeException - 1秒のうちのナノ秒が無効な場合
      • plus

        public Duration plus​(Duration duration)
        指定されたデュレーションを加算した、このデュレーションのコピーを返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        duration - 加算するデュレーション、正または負、nullでない
        戻り値:
        指定されたデュレーションが加算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • plus

        public Duration plus​(long amountToAdd,
                             TemporalUnit unit)
        指定されたデュレーションを加算した、このデュレーションのコピーを返します。

        デュレーション量は指定された単位に基づいて測定されます。 単位のサブセットのみがこのメソッドで受け入れられます。 単位は、正確なデュレーション、またはChronoUnit.DAYS(24時間として扱われる)を持つ必要があります。 他の単位は例外をスローします。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        amountToAdd - 加算する量、単位に基づいて測定、正または負
        unit - 量が測定される単位、正確なデュレーションを持つ必要がある、null以外
        戻り値:
        指定されたデュレーションが加算されたこのデュレーションに基づくDuration、nullでない
        例外:
        UnsupportedTemporalTypeException - 単位がサポートされていない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • plusDays

        public Duration plusDays​(long daysToAdd)
        標準24時間日の日数で指定されたデュレーションを加算した、このデュレーションのコピーを返します。

        日数は、加算する秒数を取得するために、86400倍されます。 これは、1日を24時間とする標準定義に基づきます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        daysToAdd - 加算する日数、正または負
        戻り値:
        指定された日数が加算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • plusHours

        public Duration plusHours​(long hoursToAdd)
        時間数で指定されたデュレーションを加算した、このデュレーションのコピーを返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        hoursToAdd - 加算する時数、正または負
        戻り値:
        指定された時数が加算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • plusMinutes

        public Duration plusMinutes​(long minutesToAdd)
        分数で指定されたデュレーションを加算した、このデュレーションのコピーを返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        minutesToAdd - 加算する分数、正または負
        戻り値:
        指定された分数が加算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • plusSeconds

        public Duration plusSeconds​(long secondsToAdd)
        秒数で指定されたデュレーションを加算した、このデュレーションのコピーを返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        secondsToAdd - 加算する秒数、正または負
        戻り値:
        指定された秒数が加算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • plusMillis

        public Duration plusMillis​(long millisToAdd)
        ミリ秒数で指定されたデュレーションを加算した、このデュレーションのコピーを返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        millisToAdd - 加算するミリ秒数、正または負
        戻り値:
        指定されたミリ秒数が加算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • plusNanos

        public Duration plusNanos​(long nanosToAdd)
        ナノ秒数で指定されたデュレーションを加算した、このデュレーションのコピーを返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        nanosToAdd - 加算するナノ秒数、正または負
        戻り値:
        指定されたナノ秒数が加算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • minus

        public Duration minus​(Duration duration)
        指定されたデュレーションを減算した、このデュレーションのコピーを返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        duration - 減算するデュレーション、正または負、nullでない
        戻り値:
        指定されたデュレーションが減算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • minus

        public Duration minus​(long amountToSubtract,
                              TemporalUnit unit)
        指定されたデュレーションを減算した、このデュレーションのコピーを返します。

        デュレーション量は指定された単位に基づいて測定されます。 単位のサブセットのみがこのメソッドで受け入れられます。 単位は、正確なデュレーション、またはChronoUnit.DAYS(24時間として扱われる)を持つ必要があります。 他の単位は例外をスローします。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        amountToSubtract - 減算する量、単位に基づいて測定、正または負
        unit - 量が測定される単位、正確なデュレーションを持つ必要がある、null以外
        戻り値:
        指定されたデュレーションが減算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • minusDays

        public Duration minusDays​(long daysToSubtract)
        標準24時間日の日数で指定されたデュレーションを減算した、このデュレーションのコピーを返します。

        日数は、減算する秒数を取得するために、86400倍されます。 これは、1日を24時間とする標準定義に基づきます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        daysToSubtract - 減算する日数、正または負
        戻り値:
        指定された日数が減算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • minusHours

        public Duration minusHours​(long hoursToSubtract)
        時間数で指定されたデュレーションを減算した、このデュレーションのコピーを返します。

        時数は、減算する秒数を取得するために、3600倍されます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        hoursToSubtract - 減算する時数、正または負
        戻り値:
        指定された時数が減算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • minusMinutes

        public Duration minusMinutes​(long minutesToSubtract)
        分数で指定されたデュレーションを減算した、このデュレーションのコピーを返します。

        時数は、減算する秒数を取得するために、60倍されます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        minutesToSubtract - 減算する分数、正または負
        戻り値:
        指定された分数が減算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • minusSeconds

        public Duration minusSeconds​(long secondsToSubtract)
        秒数で指定されたデュレーションを減算した、このデュレーションのコピーを返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        secondsToSubtract - 減算する秒数、正または負
        戻り値:
        指定された秒数が減算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • minusMillis

        public Duration minusMillis​(long millisToSubtract)
        ミリ秒数で指定されたデュレーションを減算した、このデュレーションのコピーを返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        millisToSubtract - 減算するミリ秒数、正または負
        戻り値:
        指定されたミリ秒数が減算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • minusNanos

        public Duration minusNanos​(long nanosToSubtract)
        ナノ秒数で指定されたデュレーションを減算した、このデュレーションのコピーを返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        nanosToSubtract - 減算するナノ秒数、正または負
        戻り値:
        指定されたナノ秒数が減算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • multipliedBy

        public Duration multipliedBy​(long multiplicand)
        そのスカラーで乗算された、このデュレーションのコピーを返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        multiplicand - デュレーションに対する乗数値、正または負
        戻り値:
        指定されたスカラーが乗算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • dividedBy

        public Duration dividedBy​(long divisor)
        指定された値で除算された、このデュレーションのコピーを返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        divisor - デュレーションに対する除数値、正または負、ゼロでない
        戻り値:
        指定された除数で除算されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 除数がゼロの場合または数値オーバーフローが発生した場合
      • dividedBy

        public long dividedBy​(Duration divisor)
        このDuration内で指定されたDurationが発生した回数を返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        divisor - 持続時間を正または負の値で割る値。
        戻り値:
        ゼロまで丸められた回数、指定されたDurationがこのDuration内で発生し、負であり得る
        例外:
        ArithmeticException - 除数がゼロの場合、または数値オーバーフローが発生した場合
        導入されたバージョン:
        9
      • negated

        public Duration negated()
        長さを否定して、このデュレーションのコピーを返します。

        このメソッドは、このデュレーションの合計長の記号を反転します。 たとえば、PT1.3SPT-1.3Sとして返されます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        戻り値:
        量の記号が反転されたこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • abs

        public Duration abs()
        正の長さを使って、このデュレーションのコピーを返します。

        このメソッドは正のデュレーションを返します(実際は負の合計長から記号を削除することによって)。 たとえば、PT-1.3SPT1.3Sとして返されます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        戻り値:
        絶対長のこのデュレーションに基づくDuration、nullでない
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • addTo

        public Temporal addTo​(Temporal temporal)
        指定された時間的オブジェクトにこのデュレーションを加算します。

        これは、このデュレーションが加算された状態の、入力と同じ観察可能型の時間的オブジェクトを返します。

        ほとんどのケースで、Temporal.plus(TemporalAmount)を使用して、呼び出しパターンを逆にすると明確になります。

           // these two lines are equivalent, but the second approach is recommended
           dateTime = thisDuration.addTo(dateTime);
           dateTime = dateTime.plus(thisDuration);
         

        計算は、秒を加算してから、ナノ秒を加算します。 ゼロ以外の量のみが加算されます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースTemporalAmountaddTo
        パラメータ:
        temporal - 調整する時間的オブジェクト。null以外
        戻り値:
        調整が行われた同じ型のオブジェクト、null以外
        例外:
        DateTimeException - 加算できない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • subtractFrom

        public Temporal subtractFrom​(Temporal temporal)
        指定された時間的オブジェクトからこのデュレーションを減算します。

        これは、このデュレーションが減算された状態の、入力と同じ観察可能型の時間的オブジェクトを返します。

        ほとんどのケースで、Temporal.minus(TemporalAmount)を使用して、呼び出しパターンを逆にすると明確になります。

           // these two lines are equivalent, but the second approach is recommended
           dateTime = thisDuration.subtractFrom(dateTime);
           dateTime = dateTime.minus(thisDuration);
         

        計算は、秒を減算してから、ナノ秒を減算します。 ゼロ以外の量のみが加算されます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        定義:
        インタフェースTemporalAmountsubtractFrom
        パラメータ:
        temporal - 調整する時間的オブジェクト。null以外
        戻り値:
        調整が行われた同じ型のオブジェクト、null以外
        例外:
        DateTimeException - 減算できない場合
        ArithmeticException - 数値のオーバーフローが発生した場合
      • toDays

        public long toDays()
        このデュレーションの日数を取得します。

        これは、秒数を86400で除算することによって、デュレーション内の合計日数を返します。 これは、1日を24時間とする標準定義に基づきます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        戻り値:
        デュレーション内の日数、負も可
      • toHours

        public long toHours()
        このデュレーションの時数を取得します。

        これは、秒数を3600で除算することによって、デュレーション内の合計時数を返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        戻り値:
        デュレーション内の時数、負も可
      • toMinutes

        public long toMinutes()
        このデュレーションの分数を取得します。

        これは、秒数を60で除算することによって、デュレーション内の合計分数を返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        戻り値:
        デュレーションの分数、負も可
      • toSeconds

        public long toSeconds()
        このデュレーションの秒数を取得します。

        これは、期間内の秒数の合計を返します。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        戻り値:
        デュレーションの長さの整数秒部分、正または負
        導入されたバージョン:
        9
      • toMillis

        public long toMillis()
        このデュレーションを合計長(ミリ秒単位)に変換します。

        このデュレーションが大きすぎてlongミリ秒に収まらない場合、例外がスローされます。

        このデュレーションの精度がミリ秒精度より大きい場合は、ナノ秒の量が100万で整数除算されたかのように、変換によって余分な精度情報が捨てられます。

        戻り値:
        デュレーションのミリ秒単位の合計長
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • toNanos

        public long toNanos()
        このデュレーションを合計長(longで表現されるナノ秒単位)に変換します。

        このデュレーションが大きすぎてlongナノ秒に収まらない場合、例外がスローされます。

        戻り値:
        デュレーションのナノ秒単位の合計長
        例外:
        ArithmeticException - 数値のオーバーフローが発生した場合
      • toDaysPart

        public long toDaysPart()
        期間内の日数を抽出します。

        これは、秒数を86400で除算することによって、デュレーション内の合計日数を返します。 これは、1日を24時間とする標準定義に基づきます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        戻り値:
        デュレーション内の日数、負も可
        導入されたバージョン:
        9
      • toHoursPart

        public int toHoursPart()
        期間中の時間数を抽出します。

        これは、toHours()を1日に時間で割ったときの残りの時間数を返します。 これは、1日を24時間とする標準定義に基づきます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        戻り値:
        期間中の時間部分の数は、負であってもよい
        導入されたバージョン:
        9
      • toMinutesPart

        public int toMinutesPart()
        期間中の分数を抽出します。

        これは、toMinutes()を1時間に分単位で分けたときの残り分数を返します。 これは、標準的な1時間の定義を60分としています。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        戻り値:
        期間内のパーツの数は負であってもよい
        導入されたバージョン:
        9
      • toSecondsPart

        public int toSecondsPart()
        期間中の秒数を抽出します。

        これは、toSeconds()を分単位で秒単位で分割するときの残りの秒数を返します。 これは、分の標準的な定義に基づいて60秒です。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        戻り値:
        期間内のパーツの秒数。負数
        導入されたバージョン:
        9
      • toMillisPart

        public int toMillisPart()
        期間のミリ秒数を抽出します。

        これは、ナノ秒数を1,000,000で割ってミリ秒の部分を返します。 デュレーションの長さは2つのフィールド(秒とナノ秒)を使用して保存されます。 ナノ秒部分は0から999,999,999の値で、秒単位の長さへの調整です。 合計持続時間は、getNano()getSeconds()を呼び出すことによって定義されます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        戻り値:
        期間のミリ秒数。
        導入されたバージョン:
        9
      • toNanosPart

        public int toNanosPart()
        持続時間の秒以内にナノ秒の部分を取得します。

        デュレーションの長さは2つのフィールド(秒とナノ秒)を使用して保存されます。 ナノ秒部分は0から999,999,999の値で、秒単位の長さへの調整です。 合計持続時間は、getNano()getSeconds()を呼び出すことによって定義されます。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        戻り値:
        デュレーションの長さの秒の中のナノ秒部分、0から999,999,999
        導入されたバージョン:
        9
      • truncatedTo

        public Duration truncatedTo​(TemporalUnit unit)
        指定された単位に切り捨てられたこのDurationのコピーを返します。

        継続時間を切り捨てると、指定された単位よりも小さい概念フィールドがゼロに設定された元のコピーが返されます。 たとえば、MINUTESユニットによる切捨ては、ゼロに近い分に丸められ、秒およびナノ秒はゼロに設定されます。

        単位は、標準日の長さを余りなしで等分するデュレーションを持つ必要があります。 これには、すべての「 {@code ChronoUnit}の時間ベースのユニット」およびDAYSが含まれます。 他のChronoUnitsは例外をスローします。

        このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。

        パラメータ:
        unit - 切り捨てを行う単位、nullでない
        戻り値:
        Durationは、この期間に基づいて切り捨てられ、nullではありません。
        例外:
        DateTimeException - 単位が切り捨てについて無効な場合
        UnsupportedTemporalTypeException - 単位がサポートされていない場合
        導入されたバージョン:
        9
      • compareTo

        public int compareTo​(Duration otherDuration)
        このデュレーションを指定されたDurationと比較します。

        比較は、デュレーションの合計長ベースです。 Comparableに定義されているとおりに、equalsと一致しています。

        定義:
        compareTo、インタフェース: Comparable<Duration>
        パラメータ:
        otherDuration - 比較する他方のデュレーション、nullでない
        戻り値:
        コンパレータ値、小さい場合は負、大きい場合は正
      • equals

        public boolean equals​(Object otherDuration)
        指定されたDurationとこのデュレーションが等しいかどうかをチェックします。

        比較は、デュレーションの合計長ベースです。

        オーバーライド:
        equals 、クラス:  Object
        パラメータ:
        otherDuration - 他方のデュレーション、nullはfalseを返す
        戻り値:
        他方のデュレーションがこのデュレーションと等しい場合はtrue
        関連項目:
        Object.hashCode()HashMap
      • toString

        public String toString()
        このデュレーションの、ISO-8601秒ベース表現を使用した文字列表現です(PT8H6M12.345Sなど)。

        返される文字列のフォーマットはPTnHnMnSになります。nはそれぞれ、デュレーションの時、分または秒部分です。 小数点以下の秒は、秒の小数点以下に置かれます。 セクションにゼロ値が含まれる場合は、省略されます。 時、分および秒の記号はすべて同じになります。

            "20.345 seconds"                 -- "PT20.345S
            "15 minutes" (15 * 60 seconds)   -- "PT15M"
            "10 hours" (10 * 3600 seconds)   -- "PT10H"
            "2 days" (2 * 86400 seconds)     -- "PT48H"
         
        Periodとの混同を避けるために、24時間の倍数は日数として出力されません。

        オーバーライド:
        toString 、クラス:  Object
        戻り値:
        このデュレーションのISO-8601表現、nullでない