Подтвердить что ты не робот

Каков наилучший способ преобразования XMLGregorianCalendar в MM/dd/yyyy hh: mm String?

Каков наилучший способ преобразования объектов XMLGregorianCalendar в "MM/dd/yyyy hh: mm 'String?

4b9b3361

Ответ 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());

Ответ 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);
}