package it.sauronsoftware.feed4j;
import java.text.DateFormat;
import java.text.FieldPosition;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/**
* An ISO 8601 compliant DateFormat.
*
* @author Carlo Pelliccia
*/
class ISO8601DateFormat extends DateFormat {
private static final long serialVersionUID = 1L;
private DateFormat[] formats = new DateFormat[] {
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.US),
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US),
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.US),
new SimpleDateFormat("yyyy-MM-dd", Locale.US) };
public Date parse(String source, ParsePosition pos) {
Date date = formats[0].parse(source, pos);
if (date != null) {
return date;
}
date = formats[1].parse(source, pos);
if (date != null) {
return date;
}
date = formats[2].parse(source, pos);
if (date != null) {
return date;
}
date = formats[3].parse(source, pos);
if (date != null) {
return date;
}
return null;
}
public StringBuffer format(Date date, StringBuffer toAppendTo,
FieldPosition fieldPosition) {
return formats[0].format(date, toAppendTo, fieldPosition);
}
}