Class Duration

    • Field Detail

      • ZERO

        public static final Duration ZERO
        Constant for a duration of zero.
    • Method Detail

      • parse

        public static Duration parse​(CharSequence text)
        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
      • toMillis

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

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

        public String toString()
        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