Каков наилучший способ преобразования объектов XMLGregorianCalendar в "MM/dd/yyyy hh: mm 'String?
Каков наилучший способ преобразования XMLGregorianCalendar в MM/dd/yyyy hh: mm String?
Ответ 1
Сначала используйте XMLGregorianCalendar#toGregorianCalendar()
, чтобы получить java.util.Calendar
из него.
Calendar calendar = xmlGregorianCalendar.toGregorianCalendar();
С этого шага все это очевидно с небольшой помощью SimpleDateFormat
обычным способом.
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm");
formatter.setTimeZone(calendar.getTimeZone());
String dateString = formatter.format(calendar.getTime());
Мне просто интересно, не хотите ли вы использовать HH
вместо HH
, поскольку вы не форматируете маркер am/pm где-нибудь.
Ответ 2
Вы можете использовать
toGregorianCalendar()
для этого.
например:.
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm");
String date = sdf.format(xmlGregorianCalendar.toGregorianCalendar().getTime());
В случае, если вам нужно преобразовать этот календарь в разные TimeZone и Locale, используйте toGregorianCalendar(TimeZone timezone, Locale aLocale, XMLGregorianCalendar defaults)
Ответ 3
Это пример, который вы ищете:
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());
Ответ 4
Этот пример преобразует XMLGregorianCalendar на сегодняшний день
XMLGregorianCalendar xmlCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar());
Date date = xmlCalendar.toGregorianCalendar().getTime();
Этот пример преобразует дату в строку
DateFormat df = new SimpleDateFormat("MM/dd/yyyy hh:mm");
String dateStr = df.format(GregorianCalendar.getInstance().getTime());
Ответ 5
Пожалуйста, проверьте эту статическую утилиту. Вы только что упомянули шаблон, такой как "ddMMyy" или "HHmm" или что-то, что вы хотите... это будет работать чудесно.
public static String getDateTime(XMLGregorianCalendar gDate, String pattern){
return Optional.ofNullable(gDate)
.map(gdate -> {
Calendar calendar = gDate.toGregorianCalendar();
SimpleDateFormat formatter = new SimpleDateFormat(pattern);
formatter.setTimeZone(calendar.getTimeZone());
return formatter.format(calendar.getTime());
})
.orElse(null);
}