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クラスを作成しました

私はセッターとゲッターに latestsaledate を次のように設定させました:

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

しかし、データベースから日付を取得して 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 に答える