Как да съхранявате java.util.sql в XML Грегориански календар

Опитвам се да променя формата на датата на 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>

Създадох Java класовете чрез командата XJC

Накарах сетер и гетер да зададат latestsaledate като:

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

Но когато се опитвам да получа дата от db и да присвоя на обекта XMLGregorianCalendar, това ми дава IllegalArgumentException

Може ли някой тук да ми помогне как мога да го разреша и също така да го форматирам, така че да пише само в xml файл в този формат дд/мм/гггг


person mr_nobody    schedule 24.09.2013    source източник


Отговори (1)


Може ли някой тук да ми помогне как мога да го разреша и също така да го форматирам, така че да пише само в xml файл в този формат дд/мм/гггг

Не можете и не трябва - поне не и без промяна на схемата. Вашата схема изрично указва, че е xs:date - и посоченият формат на xs:date е основно ISO-8601 (гггг-ММ-дд, с незадължително отместване от UTC), не дд/ММ/гггг.

Силно препоръчвам да съхранявате данните си в стандартизирано представяне - не забравяйте, че потребител никога не трябва да вижда това; можете да анализирате/форматирате датата според културата на потребителя и след това да я съхраните във формат ISO-8601. Много е важно да се прави разлика между формати за съхранение/комуникация и формати за представяне.

person Jon Skeet    schedule 24.09.2013