我有XML日期

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


我在测试中使用了这些数据,并且从XML中获取了数据,但是在Web页面中,它以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测试。

最佳答案

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

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

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

07-28 09:35