Class Duration

java.lang.Object
org.apache.logging.log4j.core.appender.rolling.action.Duration
All Implemented Interfaces:
Serializable, Comparable<Duration>

@Deprecated public class Duration extends Object implements Serializable, Comparable<Duration>
Deprecated.
since 2.24.0 use Duration instead.
Simplified implementation of the ISO-8601 Durations standard. The supported format is PnDTnHnMnS, with 'P' and 'T' optional. Days are considered to be exactly 24 hours.

Similarly to the java.time.Duration class, this class does not support year or month sections in the format. This implementation does not support fractions or negative values.

See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final int
    Deprecated.
    Hours per day.
    private static final int
    Deprecated.
    Minutes per hour.
    private static final Pattern
    Deprecated.
    The pattern for parsing.
    private final long
    Deprecated.
    The number of seconds in the duration.
    private static final int
    Deprecated.
    Seconds per day.
    private static final int
    Deprecated.
    Seconds per hour.
    private static final int
    Deprecated.
    Seconds per minute.
    private static final long
    Deprecated.
     
    static final Duration
    Deprecated.
    Constant for a duration of zero.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    Duration(long seconds)
    Deprecated.
    Constructs an instance of Duration using seconds.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Deprecated.
     
    private static Duration
    create(long seconds)
    Deprecated.
    Obtains an instance of Duration using seconds.
    private static Duration
    create(long daysAsSecs, long hoursAsSecs, long minsAsSecs, long secs)
    Deprecated.
     
    boolean
    Deprecated.
     
    int
    Deprecated.
     
    static Duration
    ofMillis(long millis)
    Deprecated.
     
    static Duration
    Deprecated.
    Obtains a Duration from a text string such as PnDTnHnMnS.
    private static long
    parseNumber(CharSequence text, String parsed, int multiplier, String errorText)
    Deprecated.
     
    long
    Deprecated.
    Converts this duration to the total length in milliseconds.
    Deprecated.
    A string representation of this duration using ISO-8601 seconds based representation, such as PT8H6M12S.

    Methods inherited from class Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Deprecated.
      See Also:
    • ZERO

      public static final Duration ZERO
      Deprecated.
      Constant for a duration of zero.
    • HOURS_PER_DAY

      private static final int HOURS_PER_DAY
      Deprecated.
      Hours per day.
      See Also:
    • MINUTES_PER_HOUR

      private static final int MINUTES_PER_HOUR
      Deprecated.
      Minutes per hour.
      See Also:
    • SECONDS_PER_MINUTE

      private static final int SECONDS_PER_MINUTE
      Deprecated.
      Seconds per minute.
      See Also:
    • SECONDS_PER_HOUR

      private static final int SECONDS_PER_HOUR
      Deprecated.
      Seconds per hour.
      See Also:
    • SECONDS_PER_DAY

      private static final int SECONDS_PER_DAY
      Deprecated.
      Seconds per day.
      See Also:
    • PATTERN

      private static final Pattern PATTERN
      Deprecated.
      The pattern for parsing.
    • seconds

      private final long seconds
      Deprecated.
      The number of seconds in the duration.
  • Constructor Details

    • Duration

      private Duration(long seconds)
      Deprecated.
      Constructs an instance of Duration using seconds.
      Parameters:
      seconds - the length of the duration in seconds, positive or negative
  • Method Details

    • ofMillis

      public static Duration ofMillis(long millis)
      Deprecated.
      Since:
      2.24.0
    • parse

      public static Duration parse(CharSequence text)
      Deprecated.
      Obtains a Duration from a text string such as PnDTnHnMnS.

      This will parse a textual representation of a duration, including the string produced by toString(). The formats accepted are based on the ISO-8601 duration format PnDTnHnMnS with days considered to be exactly 24 hours.

      This implementation does not support negative numbers or fractions (so the smallest non-zero value a Duration can have is one second).

      The string optionally starts with the ASCII letter "P" in upper or lower case. There are then four sections, each consisting of a number and a suffix. The sections have suffixes in ASCII of "D", "H", "M" and "S" for days, hours, minutes and seconds, accepted in upper or lower case. The suffixes must occur in order. The ASCII letter "T" may occur before the first occurrence, if any, of an hour, minute or second section. At least one of the four sections must be present, and if "T" is present there must be at least one section after the "T". The number part of each section must consist of one or more ASCII digits. The number may not be prefixed by the ASCII negative or positive symbol. The number of days, hours, minutes and seconds must parse to a long.

      Examples:

         "PT20S" -- parses as "20 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"
      
      Parameters:
      text - the text to parse, not null
      Returns:
      the parsed duration, not null
      Throws:
      IllegalArgumentException - if the text cannot be parsed to a duration
    • parseNumber

      private static long parseNumber(CharSequence text, String parsed, int multiplier, String errorText)
      Deprecated.
    • create

      private static Duration create(long daysAsSecs, long hoursAsSecs, long minsAsSecs, long secs)
      Deprecated.
    • create

      private static Duration create(long seconds)
      Deprecated.
      Obtains an instance of Duration using seconds.
      Parameters:
      seconds - the length of the duration in seconds, positive only
    • toMillis

      public long toMillis()
      Deprecated.
      Converts this duration to the total length in milliseconds.
      Returns:
      the total length of the duration in milliseconds
    • equals

      public boolean equals(Object obj)
      Deprecated.
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Deprecated.
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Deprecated.
      A string representation of this duration using ISO-8601 seconds based representation, such as PT8H6M12S.

      The format of the returned string will be PnDTnHnMnS, where n is the relevant days, hours, minutes or seconds part of the duration. If a section has a zero value, it is omitted. The hours, minutes and seconds are all positive.

      Examples:

         "20 seconds"                     -- "PT20S
         "15 minutes" (15 * 60 seconds)   -- "PT15M"
         "10 hours" (10 * 3600 seconds)   -- "PT10H"
         "2 days" (2 * 86400 seconds)     -- "P2D"
      
      Overrides:
      toString in class Object
      Returns:
      an ISO-8601 representation of this duration, not null
    • compareTo

      public int compareTo(Duration other)
      Deprecated.
      Specified by:
      compareTo in interface Comparable<Duration>