2013-01-18 90 views
7

我得到一個Date對象,這是我需要轉換爲XMLGregorian日曆特定格式日期XMLGregorianCalendar以及特定格式

我嘗試以下方法

String formattedDate = sdf.format(categoryData.getBulkCollectionTime()); //yyyy-MM-dd HH:mm:ss 
XMLGregorianCalendar xmlCal = DatatypeFactory.newInstance().newXMLGregorianCalendar(formattedDate); 
dataListType.setTimestamp(xmlCal); 

我得到一個例外,我肯定我做錯了。但我想Date對象格式化成指定格式,這是由sdf.format完全可以做到的。

但我怎麼創建相同的(從formattedDate)中的XMLGregorianCalendar對象?

回答

4

您可以通過日期對象本身做到這一點:

String formattedDate = sdf.format(categoryData.getBulkCollectionTime()); //yyyy-MM-dd HH:mm:ss 
convertStringToXmlGregorian(formattedDate); 


public XMLGregorianCalendar convertStringToXmlGregorian(String dateString) 
{ 
     try { 
      Date date = sdf.parse(dateString); 
      GregorianCalendar gc = (GregorianCalendar) GregorianCalendar.getInstance(); 
      gc.setTime(date); 
      return DatatypeFactory.newInstance().newXMLGregorianCalendar(gc); 
     } catch (ParseException e) { 
      // Optimize exception handling 
      System.out.print(e.getMessage()); 
      return null; 
     } 

} 
+3

我與你的榜樣試過,但在產值我收到「2013 -01-18T07:46:00.000" 作爲輸出。我不想在輸出中輸入「T」 – Reddy

6

您應該固定的日期格式:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 
sdf.setTimeZone(TimeZone.getTimeZone("GMT")); 
String date = sdf.format(new Date()); 
XMLGregorianCalendar xmlCal = DatatypeFactory.newInstance().newXMLGregorianCalendar(date); 
+1

我得到「2013-01-18T07:46:00.000」我不希望T – Reddy

+1

您可以使用任何格式輸出,但newXMLGregorianCalendar(dateTime)僅接受XSD中的日期DateTime格式,請參閱API –