我使用JAXB 2.2.8-b01 impl,我有一个模式,它有一个xs:date元素,它创建一个
XMLGregorianCalendar实例.我试图获得
Joda-Time
DateTime时间戳格式,但由于我必须有一个XMLGregorianCalendar实例,我不知道它是否可能.有任何想法吗?
架构XSD:
<xs:element type="xs:date" name="date-archived" minOccurs="0" maxOccurs="1" nillable="false"/>
XmlSchemaType(name = "date") protected XMLGregorianCalendar date;
XML转换类:
//java.util.Date正在传递
private XMLGregorianCalendar converToGregorianCal(Date date) { DatatypeFactory df = null; try { df = DatatypeFactory.newInstance(); } catch (DatatypeConfigurationException e) { LOG.error("error getting DatatypeFactory instance " + e.getMessage()); } if (date == null) { return null; } else { GregorianCalendar gc = new GregorianCalendar(); gc.setTimeInMillis(date.getTime()); return df.newXMLGregorianCalendar(gc); } }
解决方法
这是一个简短的方法:
public DateTime convert(final XMLGregorianCalendar xmlgc) { return new DateTime(xmlgc.toGregorianCalendar().getTime()); }