0

我正在尝试更改 XMLGregorianCalendar 日期的格式。我的架构文件(.xsd)中的代码是这样的:

    <xs:element name="LatestSaleDate">
    <xs:annotation>
        <xs:documentation>Latest sale date on the property (format MM/DD/YYYY)</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
        <xs:restriction base="xs:date"/>
    </xs:simpleType>
</xs:element>

我通过 XJC 命令创建了 Java 类

我让 setter 和 getter 将 latestsaledate 设置为:

    @XmlElement(name = "LatestSaleDate")
    protected XMLGregorianCalendar latestSaleDate;

但是当我试图从 db 获取日期并分配给 XMLGregorianCalendar 对象时,它给了我 IllegalArgumentException

这里的任何人都可以帮助我如何解决它并对其进行格式化,以便它只以这种格式 dd/MM/yyyy 写入 xml 文件

4

1 回答 1

1

这里的任何人都可以帮助我如何解决它并对其进行格式化,以便它只以这种格式 dd/MM/yyyy 写入 xml 文件

你不能也不应该——至少在不改变架构的情况下是这样。您的架构明确指定它是xs:date- 并且指定的格式xs:date基本上是 ISO-8601(yyyy-MM-dd,与 UTC 有一个可选的偏移量),而不是dd/MM/yyyy。

我强烈建议您以标准化表示形式存储数据——不要忘记用户永远不必看到它;您可以根据用户的文化解析/格式化日期,然后将其存储为 ISO-8601 格式。区分存储/通信格式和表示格式非常重要。

于 2013-09-24T15:51:25.313 回答