gpt4 book ai didi

java - 使用 JAXB 将日期从 XML 文件解码为 XMLGregorianCalendar

转载 作者:行者123 更新时间:2023-11-30 09:18:08 26 4
gpt4 key购买 nike

我目前在尝试从 xml 文件中解码日期时遇到问题。

输入 XML 片段:

<request>
<head>
<title>Load data</title>
<startDate>20130806</startDate>
<startTime>20130807-055137</startTime>
</head>
<request>

startDate 和 startTime 元素在架构文件中分别定义为 xs:date 和 xs:dateTime。

在使用 JAXB 解码 xml 文件后,我在我的 java 类中的 startDate 标记中得到值,如下所示:

XMLGregorianCalendar xcal = request.getHead().getStartDate();
Date date = xcal.toGregorianCalendar().getTime();
System.out.println(date);

输出:1 月 1 日星期日 00:00:00 IST 20130806

我调试了我的代码,发现值 20130806 保存在 XMLGregorianCalendar 的年份变量中。我不确定为什么会发生这种情况,但一个可能的原因可能是 XMLGregorianCalendar 需要日期采用特定格式。如何解码 startDate 标记,以便在无需编写一些适配器且无需事先知道输入日期格式的情况下正确获取日期值?

最佳答案

您的 XML 文档没有采用适当格式的 xs:datexs:dateTime 信息。如果应该是以下内容:

<request>
<head>
<title>Load data</title>
<startDate>2013-08-06</startDate>
<startTime>2013-08-07T05:51:37</startTime>
</head>
<request>

如果您想使用其他格式,则需要利用 XmlAdapter

关于java - 使用 JAXB 将日期从 XML 文件解码为 XMLGregorianCalendar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18637918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com