2013-02-04 4 views

Antwort

29

Verwenden Sie zuerst XMLGregorianCalendar#toGregorianCalendar(), um eine java.util.Calendar Instanz daraus zu erhalten.

Calendar calendar = xmlGregorianCalendar.toGregorianCalendar(); 

Von diesem Schritt auf, es ist alles klar, mit einer wenig Hilfe von SimpleDateFormat die üblichen Art und Weise.

SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm"); 
formatter.setTimeZone(calendar.getTimeZone()); 
String dateString = formatter.format(calendar.getTime()); 

Ich frage mich nur, wenn Sie tatsächlich nicht verwenden HH statt hh wollen, da Sie nicht die am/pm Marker überall Formatierung werden.

+0

Wenn ich diese Umwandlung mache, ist das Ergebnis '02/26/2010 06:39:24 PM '. Aber xmlGregorianCalendar.toString() gibt '2010-02-26T10: 39: 24-06: 00' zurück. Warum wird das Ergebnis in verschiedene TimeZone konvertiert? – kostepanych

+0

Bitte beachten Sie, dass "hh: mm" 1-12 Stunden Format ist. Für das Format 0-23 verwenden Sie "HH: mm"! – FCR

+0

@FCR: Ich habe gerade OPs eigenes Muster übernommen. Siehe auch Frage selbst und letzten Absatz in meiner Antwort. – BalusC

1

Dies ist ein Beispiel für Sie suchen:

XMLGregorianCalendar date = ...; // initialization is out of scope for this example 
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm"); 
GregorianCalendar gc = date.toGregorianCalendar(); 
String formatted_string = sdf.format(gc.getTime()); 
5

Sie können für diese toGregorianCalendar() Methode verwenden.

ZB:

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm"); 
String date = sdf.format(xmlGregorianCalendar.toGregorianCalendar().getTime()); 

Im Fall, müssen Sie diesen Kalender zu anderen Zeitzone und Locale konvertieren, verwenden toGregorianCalendar(TimeZone timezone, Locale aLocale, XMLGregorianCalendar defaults)

+1

Ich glaube, dass SimpleDateFormatter SimpleDateFormat sein sollte – BustedSanta

0

Dieses Beispiel convert XMLGregorianCalendar to date

XMLGregorianCalendar xmlCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()); 
Date date = xmlCalendar.toGregorianCalendar().getTime(); 

Dieses Beispiel convert date to string

DateFormat df = new SimpleDateFormat("MM/dd/yyyy hh:mm"); 
String dateStr = df.format(GregorianCalendar.getInstance().getTime()); 
Verwandte Themen