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

标签 java xml date datetime converters

我有 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/

相关文章:

java - 当我将 ArrayList 传递给 ProcessBuilder 时,出现“没有这样的文件或目录”错误

java - 使用 Java 的简单面向对象设计示例

python - 尽管清晰,lxml iterparse 仍会填充内存

java - 如何通过特定日期确定星期几?

javascript - 如何仅获取两个给定日期之间该月最后一天出现在星期一的日期

java - Spring MVC 3.2 : NoClassDefFoundError: java/util/Deque

java - Eclipse 中的“API 工具 Javadoc 建议”问题

xml - XQuery 列表节点包含所有属性

xml - 使用 xpath 查找节点在节点集中的位置

javascript - 如何在 JavaScript 中进行日期验证?