我有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()));