更改javax.xml输出的日期格式
我有一个Tomcat服务器应用程序,它根据我填充的类创建xml响应 其中一个类具有日期字段:更改javax.xml输出的日期格式,java,xml,jaxb,Java,Xml,Jaxb,我有一个Tomcat服务器应用程序,它根据我填充的类创建xml响应 其中一个类具有日期字段: @XmlRootElement public class Login { private String mLoginUserID; private String mLoginPassword; private Date mRecordChangeDateTime; ... @XmlElement(name = "recordChangeDateTime") public D
@XmlRootElement
public class Login {
private String mLoginUserID;
private String mLoginPassword;
private Date mRecordChangeDateTime;
...
@XmlElement(name = "recordChangeDateTime")
public Date getRecordChangeDateTime() {
return mRecordChangeDateTime;
}
生成的XML输出如下所示:
<recordChangeDateTime>2011-08-02T21:03:00-04:00</recordChangeDateTime>
2011-08-02T21:03:00-04:00
我正在努力解决的几个问题
1) 在将日期转换为本地时区时,始终将日期作为UTC处理,但是当javax.xml输出它时,它将应用时区转换
2) 我正在尝试配置日期的格式。在我的客户端设备中,我的标准格式是“yyyy-MM-dd HH:MM:ss”,并且希望xml响应也使用这种格式
我花了很多时间研究并试图解决这个问题,我尝试了许多SimpleDataFormat、XMLGregorianCalendar等的变体。。。但无论如何,我所做的一切都不会改变输出。。。我不确定是否有注释或其他允许我以编程方式配置日期输出的内容
如有任何见解,将不胜感激!
谢谢,这是ISO8601格式
您要使用,如所述。这将允许您指定处理该元素的所有类型转换的。你可以提供一个自定义的解析/格式化日期的方法。这个答案是你需要的(使用XmlAdapter)。谢谢RC,谢谢链接很完美,工作起来很有魅力。关于时区转换问题的快速更新,它与我用来从数据库中提取日期的recordset.getDate(“field”)方法有关。将日历对象集添加到UTC和使用recordset.getDate(“field”,cal)减轻了时区转换。干杯