如何将java.util.sql存储到XMLGregorianCalendar

时间:2013-09-24 15:45:40

标签: java date simpledateformat gregorian-calendar

我正在尝试更改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

1 个答案:

答案 0 :(得分:1)

  

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

你不能也不应该 - 至少在没有改变架构的情况下。您的架构明确指出它是xs:date - specified format of xs:date基本上是ISO-8601(yyyy-MM-dd,可选的UTC偏移量), dd / MM / YYYY。

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