1

我在使用 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:00。

有没有办法摆脱这个问题?

任何建议或帮助将不胜感激。

提前致谢

4

1 回答 1

0

对于 XML dateTime 操作,请使用 javax.xml.datatype 包中的 XMLGregorianCalendar。

从字符串解析

XMLGregorianCalendar xgc = DatatypeFactory.newInstance().newXMLGregorianCalendar("2010-11-11T04:00:47.000Z");
GregorianCalendar gc = xgc.toGregorianCalendar();

从公历转换

XMLGregorianCalendar xgc = DatatypeFactory.newInstance().newXMLGregorianCalendar(gc);

格式为 XML dateType 字符串

 String xmlDate = xgc.toString();
于 2013-04-19T15:10:58.653 回答