package ch.elexis.icpc.fire.model.jaxb; import java.text.SimpleDateFormat; import java.util.Date; import java.util.GregorianCalendar; import javax.xml.bind.annotation.adapters.XmlAdapter; import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; public class DateAdapter extends XmlAdapter<String, XMLGregorianCalendar> { //YYYY-MM-DDTHH:MM:SS private final String DATE_FORMAT = "yyyy-MM-ddTHH:mm:ss"; @Override public String marshal(XMLGregorianCalendar calendar) throws Exception{ SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); return dateFormat.format(calendar.toGregorianCalendar().getTime()); } @Override public XMLGregorianCalendar unmarshal(String dateTimeString) throws Exception{ SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); Date dateTime = dateFormat.parse(dateTimeString); GregorianCalendar gCalendar = new GregorianCalendar(); gCalendar.setTime(dateTime); XMLGregorianCalendar xmlCalendar = null; try { xmlCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(gCalendar); } catch (DatatypeConfigurationException ex) { return null; } return xmlCalendar; } }