2014-01-17 27 views
0

我在XML日期java的轉換xmldate串日期,可能時區問題

<date>1980-03-07+03:00</date> 

我用我的測試這個數據,我得到它從XML,但在網頁中就顯示在dd.MM.yyyy形式,所以我必須將其轉換爲該格式。我有以下方法:

public String convertXMLDateToString(String xmlDate) throws ParseException, DatatypeConfigurationException { 
     return new SimpleDateFormat("dd.MM.yyyy").format(new Date(DatatypeConverter.parseDate(xmlDate).getTimeInMillis())) ; 
    } 

但這是返回06.03.1980。這可能是一個時區問題 - 我如何得到正確的日期?使用字符串的原因是這些是我寫的webdriver測試。

+0

我不太明白這個問題。你是說你想忽略時區,只處理日,月和年?如果這就是你想要的,那麼也許你應該分開「+」字符 - 也就是說,你會解析然後格式化'xmlDate.split(「\\ +」)[0]'。如果你可以確認你正在問的是什麼,我會把這個評論變成一個答案。 –

回答

1

它實際上返回正確的日期。您的測試數據已損壞,或者您的應用程序中存在錯誤。但是,如果您確定沒有錯誤並且測試數據沒有損壞,則可以通過執行如下操作來手動設置正確的時區:

Calendar calendar = DatatypeConverter.parseDate(xmlDate); 
calendar.setTimeZone(TimeZone.getDefault()); 

return new SimpleDateFormat("dd.MM.yyyy").format(new Date(calendar.getTimeInMillis()));