2013-01-03 15 views
5

Mam pewne problemy z konwertowaniem obiektu kalendarza do kalendarza XMLGregorian w formacie YYYY-MM-DD HH:mm:ss.Konwersja kalendarza do formatu XMLGregorianCalendar z określonym formatowaniem

Mój obecny kod jest:

Calendar createDate = tRow.getBasic().getDateCreated(0).getSearchValue(); 
Date cDate = createDate.getTime(); 
GregorianCalendar c = new GregorianCalendar(); 
c.setTime(cDate); 
XMLGregorianCalendar date2 = DatatypeFactory.newInstance().newXMLGregorianCalendar(c); 

która zwraca datę 2013-01-03T11:50:00.000-05:00.

Chciałbym, aby przeczytano 2013-01-03 11:50:00.

Sprawdziłem kilka postów, które używają DateFormat do parsowania reprezentacji ciągów daty, jednak moje daty są dostarczane do mnie jako obiekt kalendarza, a nie ciąg znaków.

Byłbym wdzięczny za szturchnięcie we właściwym kierunku, aby pomóc mi wymyślić ten jeden.

Odpowiedz

2

XMLGregorianCalendar ma specyficzny W3C reprezentację ciąg, że nie można zmienić.

Jednak można sformatować Date z SimpleDateFormat.

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
String dateStr = dateFormat.format(cDate); 

Można uzyskać Date obiektu z XMLGregorianCalendar obiektu następująco:

xmlCalendar.getGregorianCalendar().getDate() 
+1

nie muszę uzyskać datę z XMLGregorianCalendar, ale raczej go ustawić. XMLGregorianCalendar jest wymagany przez odbierającą usługę WWW. –

+0

Dobrze, jeśli chcesz sformatować datę inaczej niż domyślnie, musisz użyć obiektu 'Date'. Zaczynasz od jednego z nich, więc nie powinieneś w ogóle potrzebować XMLGregorianCalendar. –

+0

Tak, miałem nadzieję, że uda mi się uniknąć edycji wygenerowanych klas z XMLGreg ... do daty, ale wygląda na to, że muszę mimo wszystko –

1

DateFormat#format przyjmuje parametr Object. Z pamięci, należy go zaakceptować Calendar obiektu, jeśli nie, będzie przyjmowało Date obiektu, więc można używać Calendar#getTime jako najgorszym przypadku

Można użyć instancji SimpleDateFormat określić formatowanie niestandardowe. Zapewni to, że wynik będzie zawsze taki sam dla różnych systemów.

Powiązane problemy