我正在尝试更改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
这里的任何人都可以帮我解决问题,并对其进行格式化,以便只以这种格式写入xml文件dd / MM / yyyy
答案 0 :(得分:1)
这里的任何人都可以帮我解决问题,并对其进行格式化,以便只以这种格式写入xml文件dd / MM / yyyy
你不能也不应该 - 至少在没有改变架构的情况下。您的架构明确指出它是xs:date
- specified format of xs:date
基本上是ISO-8601(yyyy-MM-dd,可选的UTC偏移量),不 dd / MM / YYYY。
我强烈建议您将数据存储在标准化表示中 - 不要忘记用户永远不应该看到它;您可以根据用户的文化解析/格式化日期,然后以ISO-8601格式存储它。区分存储/通信格式和表示格式非常重要。