2011-08-22 96 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。你可以提供一個自定義的解析/格式化日期,但你想。