com.fasterxml.jackson.databind.util

## Class ISO8601Utils

- java.lang.Object
- - com.fasterxml.jackson.databind.util.ISO8601Utils

    public class ISO8601Utils
    extends 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

### Constructor Summary

Constructors
Constructor and Description
`ISO8601Utils()`

### Method Summary

Methods
`static String` `format(Date date)` Format a date into 'yyyy-MM-ddThh:mm:ssZ' (GMT timezone, no milliseconds precision)
`static String` `format(Date date, boolean millis)` Format a date into 'yyyy-MM-ddThh:mm:ss[.sss]Z' (GMT timezone)
`static String` `format(Date date, boolean millis, TimeZone tz)` Format date into yyyy-MM-ddThh:mm:ss[.sss][Z|[+-]hh:mm]
`static Date` `parse(String date, ParsePosition pos)` Parse a date from ISO-8601 formatted string.
`static TimeZone` `timeZoneGMT()` Accessor for static GMT timezone instance.

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

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

### Constructor Detail

#### ISO8601Utils

    public ISO8601Utils()

### Method Detail

#### timeZoneGMT

    public static TimeZone timeZoneGMT()

Accessor for static GMT timezone instance.

#### format

    public static String format(Date date)

Format a date into 'yyyy-MM-ddThh:mm:ssZ' (GMT timezone, no milliseconds precision)

Parameters:
  `date` - the date to format
Returns:
  the date formatted as 'yyyy-MM-ddThh:mm:ssZ'

#### format

    public static String format(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 String format(Date date,
                boolean millis,
                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 (GMT will produce 'Z')
Returns:
  the date formatted as yyyy-MM-ddThh:mm:ss[.sss][Z|[+-]hh:mm]

#### parse

    public static Date parse(String date,
             ParsePosition pos)
                      throws 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:
  `ParseException` - if the date is not in the appropriate format