我遇到了Java Calendar的奇怪情况。我正在使用推土机映射器来映射对象。
我的要求是我得到了一个只接受日历类型的XML架构元素
说元素<expDtTime>2010-11-11T09:30:47.000Z</expDtTime>
我必须转换它。我写了以下转换器:
public Calender m(Date source,Calender c) {
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
calendar.setTime(source);
return calendar;
}
我需要它采用相同的格式。但它显示为
<expDtTime>2010-11-11T04:00:47.000Z</expDtTime>
我希望我的对象具有相同的格式和值。它显示时间是凌晨4点。
有没有办法摆脱这个问题?
非常感谢任何建议或帮助。
提前致谢
答案 0 :(得分:0)
对于使用XML dateTime的操作,请使用javax.xml.datatype包中的XMLGregorianCalendar。
从字符串解析
XMLGregorianCalendar xgc = DatatypeFactory.newInstance().newXMLGregorianCalendar("2010-11-11T04:00:47.000Z");
GregorianCalendar gc = xgc.toGregorianCalendar();
从GregorianCalendar转换
XMLGregorianCalendar xgc = DatatypeFactory.newInstance().newXMLGregorianCalendar(gc);
格式为XML dateType字符串
String xmlDate = xgc.toString();