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

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

首先使用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标记。

您可以使用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)

这是您正在寻找的示例:

 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()); 

此示例将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());