Java 使用JAXB将XML文件中的日期解组到XMLGregorianCalendar
我当前在尝试从xml文件中解组日期时遇到了一个问题 输入XML片段:Java 使用JAXB将XML文件中的日期解组到XMLGregorianCalendar,java,xml,unmarshalling,jaxb2,Java,Xml,Unmarshalling,Jaxb2,我当前在尝试从xml文件中解组日期时遇到了一个问题 输入XML片段: <request> <head> <title>Load data</title> <startDate>20130806</startDate> <startTime>20130807-055137</startTime> </head> <re
<request>
<head>
<title>Load data</title>
<startDate>20130806</startDate>
<startTime>20130807-055137</startTime>
</head>
<request>
输出:
Sun Jan 01 00:00:00 IST 20130806
我调试了代码,发现值20130806保存在XMLGregorianCalendar的年份变量中。我不太清楚为什么会发生这种情况,但一个可能的原因可能是XMLGregorianCalendar需要以特定格式显示日期。如何解组startDate标记以正确获取日期值,而无需编写适配器,也无需事先知道输入日期格式?您的XML文档没有相应格式的
xs:date
和xs:dateTime
信息。如果出现以下情况:
加载数据
2013-08-06
2013-08-07T05:51:37
如果要使用备用格式,则需要利用XmlAdapter
XMLGregorianCalendar xcal = request.getHead().getStartDate();
Date date = xcal.toGregorianCalendar().getTime();
System.out.println(date);