2013-09-24 1 views
0

Я пытаюсь изменить формат даты XMLGregorianCalendar. Код в моем файле схемы (XSD-) заключается в следующем:Как сохранить java.util.sql в XMLГрегорианский календарь

<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-файл в этом формате дд/мм/гггг

ответ

1

Может кто-нибудь здесь мне помочь, как я могу решить эту проблему, а также отформатировать его, чтобы он только писать в XML-файл в этом формате дд/мм/гггг

Вы не можете и не должны - по крайней мере, не меняя схему. В вашей схеме явно указано, что это xs:date, а specified format of xs:date в основном ISO-8601 (yyyy-MM-dd, с дополнительным смещением от UTC), не dd/MM/yyyy.

Я бы настоятельно рекомендовал хранить ваши данные в стандартизованном представлении - не забывайте, что пользователю не должно быть этого; вы можете разобрать/форматировать дату в соответствии с культурой пользователя, а затем магазин в формате ISO-8601. Очень важно различать форматы хранения/связи и форматы презентации.