Class ISO8601Converter

java.lang.Object
com.itextpdf.kernel.xmp.impl.ISO8601Converter

public final class ISO8601Converter extends Object
Converts between ISO 8601 Strings and Calendar with millisecond resolution.
Since:
16.02.2006
  • Method Details

    • parse

      public static XMPDateTime parse (String iso8601String) throws XMPException
      Converts an ISO 8601 string to an XMPDateTime. Parse a date according to ISO 8601 and http://www.w3.org/TR/NOTE-datetime:
      • YYYY
      • YYYY-MM
      • YYYY-MM-DD
      • YYYY-MM-DDThh:mmTZD
      • YYYY-MM-DDThh:mm:ssTZD
      • YYYY-MM-DDThh:mm:ss.sTZD
      Data fields:
      • YYYY = four-digit year
      • MM = two-digit month (01=January, etc.)
      • DD = two-digit day of month (01 through 31)
      • hh = two digits of hour (00 through 23)
      • mm = two digits of minute (00 through 59)
      • ss = two digits of second (00 through 59)
      • s = one or more digits representing a decimal fraction of a second
      • TZD = time zone designator (Z or +hh:mm or -hh:mm)
      Note that ISO 8601 does not seem to allow years less than 1000 or greater than 9999. We allow any year, even negative ones. The year is formatted as "%.4d".

      Note: Tolerate missing TZD, assume is UTC. Photoshop 8 writes dates like this for exif:GPSTimeStamp.
      Note: DOES NOT APPLY ANYMORE. Tolerate missing date portion, in case someone foolishly writes a time-only value that way.

      Parameters:
      iso8601String - a date string that is ISO 8601 conform.
      Returns:
      Returns a Calendar.
      Throws:
      XMPException - Is thrown when the string is non-conform.
    • parse

      public static XMPDateTime parse (String iso8601String, XMPDateTime binValue) throws XMPException
      Parameters:
      iso8601String - a date string that is ISO 8601 conform.
      binValue - an existing XMPDateTime to set with the parsed date
      Returns:
      Returns an XMPDateTime-object containing the ISO8601-date.
      Throws:
      XMPException - Is thrown when the string is non-conform.
    • render

      public static String render (XMPDateTime dateTime)
      Converts a Calendar into an ISO 8601 string. Format a date according to ISO 8601 and http://www.w3.org/TR/NOTE-datetime:
      • YYYY
      • YYYY-MM
      • YYYY-MM-DD
      • YYYY-MM-DDThh:mmTZD
      • YYYY-MM-DDThh:mm:ssTZD
      • YYYY-MM-DDThh:mm:ss.sTZD
      Data fields:
      • YYYY = four-digit year
      • MM = two-digit month (01=January, etc.)
      • DD = two-digit day of month (01 through 31)
      • hh = two digits of hour (00 through 23)
      • mm = two digits of minute (00 through 59)
      • ss = two digits of second (00 through 59)
      • s = one or more digits representing a decimal fraction of a second
      • TZD = time zone designator (Z or +hh:mm or -hh:mm)

      Note: ISO 8601 does not seem to allow years less than 1000 or greater than 9999. We allow any year, even negative ones. The year is formatted as "%.4d".

      Note: Fix for bug 1269463 (silently fix out of range values) included in parsing. The quasi-bogus "time only" values from Photoshop CS are not supported.

      Parameters:
      dateTime - an XMPDateTime-object.
      Returns:
      Returns an ISO 8601 string.