java将xmldate转换为字符串日期,可能是时区问题

时间:2014-01-17 23:31:20

标签: java xml date datetime converter

我有XML日期

 <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测试。

1 个答案:

答案 0 :(得分:1)

它实际返回了正确的日期。您的测试数据已损坏或您的应用程序中存在错误。但是,如果您确定没有错误并且测试数据没有损坏,您可以通过以下操作手动设置正确的时区:

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

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