package io.seqware.webservice.adapter; import java.util.Date; import javax.xml.bind.annotation.adapters.XmlAdapter; import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.ISODateTimeFormat; /** * A JAXB Adapter to convert {@link Date} to ISO8601 date time strings when generating XML and JSON. This adapter also converts ISO8601 date * time strings into {@link Date} classes when converting from XML or JSON to a Java Object. * * ISO8601 date time strings has the format of the following example: {@code 2012-01-09T21:39:17-05:00}. * * @author tdebat * */ public class DateFormatterAdapter extends XmlAdapter<String, Date> { private static DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTimeNoMillis(); @Override public Date unmarshal(final String v) throws Exception { return dateTimeFormatter.parseDateTime(v).toDate(); } @Override public String marshal(final Date v) throws Exception { return dateTimeFormatter.print(v.getTime()); } }