我有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测试。
答案 0 :(得分:1)
它实际返回了正确的日期。您的测试数据已损坏或您的应用程序中存在错误。但是,如果您确定没有错误并且测试数据没有损坏,您可以通过以下操作手动设置正确的时区:
Calendar calendar = DatatypeConverter.parseDate(xmlDate);
calendar.setTimeZone(TimeZone.getDefault());
return new SimpleDateFormat("dd.MM.yyyy").format(new Date(calendar.getTimeInMillis()));