Package com.itextpdf.xmp.impl
Class ISO8601Converter
- java.lang.Object
-
- com.itextpdf.xmp.impl.ISO8601Converter
-
public final class ISO8601Converter extends java.lang.Object
Converts between ISO 8601 Strings andCalendar
with millisecond resolution.- Since:
- 16.02.2006
-
-
Constructor Summary
Constructors Modifier Constructor Description private
ISO8601Converter()
Hides public constructor
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static XMPDateTime
parse(java.lang.String iso8601String)
Converts an ISO 8601 string to anXMPDateTime
.static XMPDateTime
parse(java.lang.String iso8601String, XMPDateTime binValue)
static java.lang.String
render(XMPDateTime dateTime)
Converts aCalendar
into an ISO 8601 string.
-
-
-
Method Detail
-
parse
public static XMPDateTime parse(java.lang.String iso8601String) throws XMPException
Converts an ISO 8601 string to anXMPDateTime
. 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
- 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: 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(java.lang.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 java.lang.String render(XMPDateTime dateTime)
Converts aCalendar
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
- 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.
-
-