2013-02-04 86 views

回答

29

首先使用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標記。

+0

當我做這個轉換的結果是'02/26/2010 06:39:24 PM'。但xmlGregorianCalendar.toString()返回'2010-02-26T10:39:24-06:00'。那麼爲什麼結果會在不同的TimeZone中轉換? – kostepanych

+0

請注意,「hh:mm」爲1-12小時格式。對於0-23格式,請使用「HH:mm」! – FCR

+0

@FCR:我剛接手OP自己的模式。另請參見問題本身和我答案中的最後一段。 – BalusC

1

這是你正在尋找一個例子:

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

這個例子convert XMLGregorianCalendar to date

XMLGregorianCalendar xmlCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()); 
Date date = xmlCalendar.toGregorianCalendar().getTime(); 

這個例子convert date to string

DateFormat df = new SimpleDateFormat("MM/dd/yyyy hh:mm"); 
String dateStr = df.format(GregorianCalendar.getInstance().getTime()); 
相關問題