Quel est le meilleur moyen de convertir les objets XMLGregorianCalendar en chaîne 'MM/jj/aaaa hh: mm'?
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.
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)
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());
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());