package com.fasterxml.jackson.databind.util;
import java.text.*;
import java.util.Date;
import java.util.GregorianCalendar;
Provide a fast thread-safe formatter/parser DateFormat for ISO8601 dates ONLY.
It was mainly done to be used with Jackson JSON Processor.
Watch out for clone implementation that returns itself.
All other methods but parse and format and clone are undefined behavior.
Deprecated: Use StdDateFormat
instead
/**
* Provide a fast thread-safe formatter/parser DateFormat for ISO8601 dates ONLY.
* It was mainly done to be used with Jackson JSON Processor.
*<p>
* Watch out for clone implementation that returns itself.
*<p>
* All other methods but parse and format and clone are undefined behavior.
*
* @deprecated Use {@link com.fasterxml.jackson.databind.util.StdDateFormat} instead
*/
@Deprecated // since 2.9
public class ISO8601DateFormat extends DateFormat
{
private static final long serialVersionUID = 1L;
public ISO8601DateFormat() {
this.numberFormat = new DecimalFormat();;
this.calendar = new GregorianCalendar();;
}
@Override
public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) {
toAppendTo.append(ISO8601Utils.format(date));
return toAppendTo;
}
@Override
public Date parse(String source, ParsePosition pos) {
try {
return ISO8601Utils.parse(source, pos);
}
catch (ParseException e) {
return null;
}
}
//supply our own parse(String) since pos isn't updated during parsing,
//but the exception should have the right error offset.
@Override
public Date parse(String source) throws ParseException {
return ISO8601Utils.parse(source, new ParsePosition(0));
}
@Override
public Object clone() {
return this;
}
}