org.apache.commons.lang3.time

## Class DurationUtils

- java.lang.Object
- - org.apache.commons.lang3.time.DurationUtils

-     public class DurationUtils
      extends Object

  Utilities for `Duration`.
  Since:
    3.12.0

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DurationUtils()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `static <T extends Throwable> void` | `accept(FailableBiConsumer<Long,Integer,T> consumer, Duration duration)` Accepts the function with the duration as a long milliseconds and int nanoseconds.
    `static int` | `getNanosOfMiili(Duration duration)` Deprecated. Use `getNanosOfMilli(Duration)`.
    `static int` | `getNanosOfMilli(Duration duration)` Gets the nanosecond part of a Duration converted to milliseconds.
    `static boolean` | `isPositive(Duration duration)` Tests whether the given Duration is positive (>0).
    `static <E extends Throwable> Duration` | `of(FailableConsumer<Instant,E> consumer)` Runs the lambda and returns the duration of its execution.
    `static <E extends Throwable> Duration` | `of(FailableRunnable<E> runnable)` Runs the lambda and returns the duration of its execution.
    `static Duration` | `since(Temporal startInclusive)` Computes the Duration between a start instant and now.
    `static Duration` | `toDuration(long amount, TimeUnit timeUnit)` Converts an amount and TimeUnit into a Duration.
    `static int` | `toMillisInt(Duration duration)` Converts a Duration to milliseconds bound to an int (instead of a long).
    `static Duration` | `zeroIfNull(Duration duration)` Returns the given non-null value or `Duration.ZERO` if null.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DurationUtils

          public DurationUtils()

  - ### Method Detail

    - #### accept

          public static <T extends Throwable> void accept(FailableBiConsumer<Long,Integer,T> consumer,
                                                          Duration duration)
                                                   throws T extends Throwable

      Accepts the function with the duration as a long milliseconds and int nanoseconds.
      Type Parameters:
        `T` - The function exception.
      Parameters:
        `consumer` - Accepting function.
        `duration` - The duration to pick apart.
      Throws:
        `T` - See the function signature.
        `T extends Throwable`

    - #### getNanosOfMiili

          @Deprecated
          public static int getNanosOfMiili(Duration duration)

      Deprecated. Use `getNanosOfMilli(Duration)`.
      Gets the nanosecond part of a Duration converted to milliseconds.

      Handy when calling an API that takes a long of milliseconds and an int of nanoseconds. For example, `Object.wait(long, int)` and `Thread.sleep(long, int)`.

      Note that is this different from `Duration.getNano()` because a duration are seconds and nanoseconds.

      Parameters:
        `duration` - The duration to query.
      Returns:
        nanoseconds between 0 and 999,999.

    - #### getNanosOfMilli

          public static int getNanosOfMilli(Duration duration)

      Gets the nanosecond part of a Duration converted to milliseconds.

      Handy when calling an API that takes a long of milliseconds and an int of nanoseconds. For example, `Object.wait(long, int)` and `Thread.sleep(long, int)`.

      Note that is this different from `Duration.getNano()` because a duration are seconds and nanoseconds.

      Parameters:
        `duration` - The duration to query.
      Returns:
        nanoseconds between 0 and 999,999.
      Since:
        3.13.0

    - #### isPositive

          public static boolean isPositive(Duration duration)

      Tests whether the given Duration is positive (>0).
      Parameters:
        `duration` - the value to test
      Returns:
        whether the given Duration is positive (>0).

    - #### of

          public static <E extends Throwable> Duration of(FailableConsumer<Instant,E> consumer)
                                                   throws E extends Throwable

      Runs the lambda and returns the duration of its execution.
      Type Parameters:
        `E` - The type of exception throw by the lambda.
      Parameters:
        `consumer` - What to execute.
      Returns:
        The Duration of execution.
      Throws:
        `E` - thrown by the lambda.
        `E extends Throwable`
      Since:
        3.13.0

    - #### of

          public static <E extends Throwable> Duration of(FailableRunnable<E> runnable)
                                                   throws E extends Throwable

      Runs the lambda and returns the duration of its execution.
      Type Parameters:
        `E` - The type of exception throw by the lambda.
      Parameters:
        `runnable` - What to execute.
      Returns:
        The Duration of execution.
      Throws:
        `E` - thrown by the lambda.
        `E extends Throwable`
      Since:
        3.13.0

    - #### since

          public static Duration since(Temporal startInclusive)

      Computes the Duration between a start instant and now.
      Parameters:
        `startInclusive` - the start instant, inclusive, not null.
      Returns:
        a `Duration`, not null.
      Since:
        3.13.0

    - #### toDuration

          public static Duration toDuration(long amount,
                                            TimeUnit timeUnit)

      Converts an amount and TimeUnit into a Duration.
      Parameters:
        `amount` - the amount of the duration, measured in terms of the unit, positive or negative
        `timeUnit` - the unit that the duration is measured in, must have an exact duration, not null
      Returns:
        a Duration.

    - #### toMillisInt

          public static int toMillisInt(Duration duration)

      Converts a Duration to milliseconds bound to an int (instead of a long).

      Handy for low-level APIs that take millisecond timeouts in ints rather than longs.

      - If the duration milliseconds are greater than `Integer.MAX_VALUE`, then return `Integer.MAX_VALUE`.
      - If the duration milliseconds are lesser than `Integer.MIN_VALUE`, then return `Integer.MIN_VALUE`.
      Parameters:
        `duration` - The duration to convert, not null.
      Returns:
        int milliseconds.

    - #### zeroIfNull

          public static Duration zeroIfNull(Duration duration)

      Returns the given non-null value or `Duration.ZERO` if null.
      Parameters:
        `duration` - The duration to test.
      Returns:
        The given duration or `Duration.ZERO`.

Copyright © 2001–2023 The Apache Software Foundation. All rights reserved.