Class ISO8601


  • public final class ISO8601
    extends Object
    The ISO8601 utility class provides helper methods to deal with date/time formatting using a specific ISO8601-compliant format (see ISO 8601).

    The currently supported format is:

       ±YYYY-MM-DDThh:mm:ss.SSSTZD
     
    where:
       ±YYYY = four-digit year with optional sign where values <= 0 are
               denoting years BCE and values > 0 are denoting years CE,
               e.g. -0001 denotes the year 2 BCE, 0000 denotes the year 1 BCE,
               0001 denotes the year 1 CE, and so on...
       MM    = two-digit month (01=January, etc.)
       DD    = two-digit day of month (01 through 31)
       hh    = two digits of hour (00 through 23) (am/pm NOT allowed)
       mm    = two digits of minute (00 through 59)
       ss    = two digits of second (00 through 59)
       SSS   = three digits of milliseconds (000 through 999)
       TZD   = time zone designator, Z for Zulu (i.e. UTC) or an offset from UTC
               in the form of +hh:mm or -hh:mm
     
    • Constructor Detail

      • ISO8601

        public ISO8601()
    • Method Detail

      • parse

        public static Calendar parse​(String text)
        Parses an ISO8601-compliant date/time string.
        Parameters:
        text - the date/time string to be parsed
        Returns:
        a Calendar, or null if the input could not be parsed
        Throws:
        IllegalArgumentException - if a null argument is passed
      • format

        public static String format​(Calendar cal)
                             throws IllegalArgumentException
        Formats a Calendar value into an ISO8601-compliant date/time string.
        Parameters:
        cal - the time value to be formatted into a date/time string.
        Returns:
        the formatted date/time string.
        Throws:
        IllegalArgumentException - if a null argument is passed or the calendar cannot be represented as defined by ISO 8601 (i.e. year with more than four digits).
      • getYear

        public static int getYear​(Calendar cal)
                           throws IllegalArgumentException
        Returns the astronomical year of the given calendar.
        Parameters:
        cal - a calendar instance.
        Returns:
        the astronomical year.
        Throws:
        IllegalArgumentException - if calendar cannot be represented as defined by ISO 8601 (i.e. year with more than four digits).