2013-02-04 47 views

Trả lời

29

Sử dụng lần đầu XMLGregorianCalendar#toGregorianCalendar() để có được ví dụ java.util.Calendar.

Calendar calendar = xmlGregorianCalendar.toGregorianCalendar(); 

Từ bước đó, tất cả đều rõ ràng với một chút trợ giúp của SimpleDateFormat theo cách thông thường.

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

Tôi chỉ tự hỏi, nếu bạn không thực sự muốn sử dụng HH thay vì hh như bạn không phải là định dạng sáng/chiều đánh dấu bất cứ nơi nào.

+0

Khi tôi thực hiện chuyển đổi này, kết quả là '02/26/2010 06:39:24 PM '. Nhưng xmlGregorianCalendar.toString() trả về '2010-02-26T10: 39: 24-06: 00'. Vậy tại sao kết quả được chuyển đổi trong TimeZone khác nhau? – kostepanych

+0

Hãy ghi nhớ rằng "hh: mm" là định dạng 1-12 giờ. Đối với định dạng 0-23, hãy sử dụng "HH: mm"! – FCR

+0

@FCR: Tôi vừa tiếp quản hình mẫu của OP. Xem thêm câu hỏi và đoạn cuối cùng trong câu trả lời của tôi. – BalusC

1

Đây là một ví dụ bạn đang tìm kiếm:

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

Bạn có thể sử dụng toGregorianCalendar() phương pháp cho việc này.

Ví dụ:

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

Trong trường hợp, bạn cần phải chuyển đổi mà lịch để TimeZone khác nhau và Locale, sử dụng toGregorianCalendar(TimeZone timezone, Locale aLocale, XMLGregorianCalendar defaults)

+1

Tôi tin rằng SimpleDateFormatter nên là SimpleDateFormat – BustedSanta

0

Ví dụ này convert XMLGregorianCalendar to date

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

Ví dụ này convert date to string

DateFormat df = new SimpleDateFormat("MM/dd/yyyy hh:mm"); 
String dateStr = df.format(GregorianCalendar.getInstance().getTime()); 
Các vấn đề liên quan