将XMLGregorianCalendar转换为MM/dd/yyyy hh:mm String的最佳方法是什么?

kos*_*ych 21 java xml

将XMLGregorianCalendar对象转换为'MM/dd/yyyy hh:mm'字符串的最佳方法是什么?

Bal*_*usC 37

首先用它XMLGregorianCalendar#toGregorianCalendar()来获取一个java.util.Calendar实例.

Calendar calendar = xmlGregorianCalendar.toGregorianCalendar();
Run Code Online (Sandbox Code Playgroud)

从那一步开始,SimpleDateFormat通过常规方式的帮助就显而易见了.

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

我只是想知道你是否真的不想使用HH而不是hh因为你没有在任何地方格式化am/pm标记.


Ost*_*siv 8

您可以使用 toGregorianCalendar()此方法.

例如:

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

如果您需要将该日历转换为不同的TimeZone和Locale,请使用 toGregorianCalendar(TimeZone timezone, Locale aLocale, XMLGregorianCalendar defaults)