Class ISO8601Utils


  • @Internal
    public class ISO8601Utils
    extends java.lang.Object
    Utilities methods for manipulating dates in iso8601 format. This is much much faster and GC friendly than using SimpleDateFormat so highly suitable if you (un)serialize lots of date objects. Supported parse format: [yyyy-MM-dd|yyyyMMdd][T(hh:mm[:ss[.sss]]|hhmm[ss[.sss]])]?[Z|[+-]hh[:]mm]]
    See Also:
    this specification
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.util.TimeZone TIMEZONE_UTC
      The UTC timezone, prefetched to avoid more lookups.
    • Constructor Summary

      Constructors 
      Constructor Description
      ISO8601Utils()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String format​(java.util.Date date)
      Format a date into 'yyyy-MM-ddThh:mm:ssZ' (default timezone, no milliseconds precision)
      static java.lang.String format​(java.util.Date date, boolean millis)
      Format a date into 'yyyy-MM-ddThh:mm:ss[.sss]Z' (GMT timezone)
      static java.lang.String format​(java.util.Date date, boolean millis, java.util.TimeZone tz)
      Format date into yyyy-MM-ddThh:mm:ss[.sss][Z|[+-]hh:mm]
      static java.util.Date parse​(java.lang.String date, java.text.ParsePosition pos)
      Parse a date from ISO-8601 formatted string.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • TIMEZONE_UTC

        public static final java.util.TimeZone TIMEZONE_UTC
        The UTC timezone, prefetched to avoid more lookups.
        Since:
        2.7
    • Constructor Detail

      • ISO8601Utils

        public ISO8601Utils()
    • Method Detail

      • format

        public static java.lang.String format​(java.util.Date date)
        Format a date into 'yyyy-MM-ddThh:mm:ssZ' (default timezone, no milliseconds precision)
        Parameters:
        date - the date to format
        Returns:
        the date formatted as 'yyyy-MM-ddThh:mm:ssZ'
      • format

        public static java.lang.String format​(java.util.Date date,
                                              boolean millis)
        Format a date into 'yyyy-MM-ddThh:mm:ss[.sss]Z' (GMT timezone)
        Parameters:
        date - the date to format
        millis - true to include millis precision otherwise false
        Returns:
        the date formatted as 'yyyy-MM-ddThh:mm:ss[.sss]Z'
      • format

        public static java.lang.String format​(java.util.Date date,
                                              boolean millis,
                                              java.util.TimeZone tz)
        Format date into yyyy-MM-ddThh:mm:ss[.sss][Z|[+-]hh:mm]
        Parameters:
        date - the date to format
        millis - true to include millis precision otherwise false
        tz - timezone to use for the formatting (UTC will produce 'Z')
        Returns:
        the date formatted as yyyy-MM-ddThh:mm:ss[.sss][Z|[+-]hh:mm]
      • parse

        public static java.util.Date parse​(java.lang.String date,
                                           java.text.ParsePosition pos)
                                    throws java.text.ParseException
        Parse a date from ISO-8601 formatted string. It expects a format [yyyy-MM-dd|yyyyMMdd][T(hh:mm[:ss[.sss]]|hhmm[ss[.sss]])]?[Z|[+-]hh[:mm]]]
        Parameters:
        date - ISO string to parse in the appropriate format.
        pos - The position to start parsing from, updated to where parsing stopped.
        Returns:
        the parsed date
        Throws:
        java.text.ParseException - if the date is not in the appropriate format