我有 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
。这可能是时区问题 - 如何获得正确的日期?使用字符串的原因是这些是我正在编写的网络驱动程序测试。
最佳答案
它实际上返回了正确的日期。您的测试数据已损坏,或者您的应用程序存在错误。但是,如果您确定没有错误并且测试数据没有损坏,您可以通过执行以下操作来手动设置正确的时区:
Calendar calendar = DatatypeConverter.parseDate(xmlDate);
calendar.setTimeZone(TimeZone.getDefault());
return new SimpleDateFormat("dd.MM.yyyy").format(new Date(calendar.getTimeInMillis()));
关于java将xmldate转换为字符串日期,可能是时区问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21197917/