Class ISO8601Utils

java.lang.Object
io.sentry.vendor.gson.internal.bind.util.ISO8601Utils

@Internal 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:
  • Field Details

    • TIMEZONE_UTC

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

    • ISO8601Utils

      public ISO8601Utils()
  • Method Details

    • format

      public static String format(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 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 (UTC 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