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

标签 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;

但是当我尝试从数据库获取日期并分配给 XMLGregorianCalendar 对象时,它给了我 IllegalArgumentException

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

最佳答案

Can anybody here help me how I can solve it and also format it so it only write to xml file in this format dd/MM/yyyy

您不能也不应该 - 至少在不更改架构的情况下不能这样做。您的架构明确指定它是 xs:date - 以及 specified format of xs:date基本上是 ISO-8601(yyyy-MM-dd,带有可选的 UTC 偏移量),不是 dd/MM/yyyy。

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

关于java - 如何将 java.util.sql 存储到 XMLGregorianCalendar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18986254/

相关文章:

java - 每当调用 System.out.println 时打印任务名称

java - 使用 char toUpperCase 时实际会发生什么

java - Jodatime 计算 2 个日期范围(几乎是一年)之间的期间的错误

Java:日期和偏移量问题?

javascript - 坚持在 JavaScript 中递增日期

java - 如何构建 .jar 文件

java - log4J 输出中跳过和重复的行号

java - 是否可以在 Java 中用冒号格式化 UTC 时区?

java - SimpleDateFormat 小时字符串在某些*日期*上相差一。如何?为什么?

java - 如何使用 SimpleDateFormat 仅解析日期