web-dev-qa-db-fra.com

Quel est le meilleur moyen de convertir XMLGregorianCalendar en MM/jj/aaaa hh: mm String?

Quel est le meilleur moyen de convertir les objets XMLGregorianCalendar en chaîne 'MM/jj/aaaa hh: mm'?

19
kostepanych

Commencez par utiliser XMLGregorianCalendar#toGregorianCalendar() pour obtenir une instance de Java.util.Calendar .

Calendar calendar = xmlGregorianCalendar.toGregorianCalendar();

À partir de là, tout est évident avec un peu d’aide de SimpleDateFormat de la manière habituelle.

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

Je me demande seulement si vous ne voulez pas réellement utiliser HH au lieu de hh car vous ne formatez le marqueur am/pm nulle part.

34
BalusC

Vous pouvez utiliser toGregorianCalendar() method pour cela.

Par exemple.:

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

Si vous devez convertir ce calendrier en différents fuseaux horaires et paramètres régionaux, utilisez toGregorianCalendar(TimeZone timezone, Locale aLocale, XMLGregorianCalendar defaults)

6
Ostap Andrusiv

Ceci est un exemple que vous recherchez:

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());
1
Miguel Prz

Cet exemple convert XMLGregorianCalendar to date

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

Cet exemple convertit la date en chaîne

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