2011-08-22 158 views
1

我有一个Tomcat服务器应用程序,它根据我填充的类创建xml响应。由javax.xml输出更改日期格式

其中一个类有一个日期字段:

@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> 

夫妇的问题...

1 )它将日期转换为本地时区,日期始终以UTC的形式处理,但是当javax.xml输出该日期时,它将应用时区转换。

2)我想配置如何格式化日期。我的客户端设备上的标准格式是“yyyy-MM-dd HH:mm:ss”,并且希望xml响应也使用此格式。

我已经花了许多时间研究并试图通过这项工作,我尝试了很多SimpleDateFormat,XMLGregorianCalendar等的变体......但我没有做任何改变输出...我不确定如果有一个注释或其他的东西,允许我以编程方式配置日期输出?

任何见解将不胜感激! 谢谢,

+0

这个答案http://stackoverflow.com/questions/4687188/how-to-convert-dateactionscript-3-to-java-util-date-through-a-xml/4694496#4694496是你所需要的(使用一个XmlAdapter) – 2011-08-22 05:07:53

+0

谢谢RC,感谢链接是完美的,像一个魅力工作。 – Telegard

+0

快速更新timeZone转换问题,它与我用来从数据库中提取日期的recordset.getDate(“field”)方法有关。添加设置为UTC的日历对象,并使用recordset.getDate(“field”,cal)减轻时区转换。干杯! – Telegard

回答

2

这是ISO8601格式。

你想要使用XmlJavaTypeAdapter,如概述here。这将让您指定处理该元素的所有类型转换的XmlAdapter。你可以提供一个自定义的解析/格式化日期,但你想。