2014-04-23 17 views
9

Có cách nào ngắn để chuyển đổi java.time.ZonedDateTime thành XMLGregorianCalendar không?Làm thế nào để chuyển đổi java.time.ZonedDateTime thành XMLGregorianCalendar?

Có lẽ tôi cần một số bước trung gian như chuyển đổi ZonedDateTime thành java.util.Date, nhưng điều đó sẽ làm cho mã quá lộn xộn.

Sự cố đã xuất hiện trong các dịch vụ web JAX-WS, ngày giờ được chuyển thành XMLGregorianCalendar.

+0

Hiện một số mã như thế nào bạn đang làm việc đó. Tôi đã có vấn đề đó nhưng để chuyển đổi từ XMLGregorianCalendar sang một ngày bình thường mà không có múi giờ chỉ đơn giản là 'yyyy-MM-dd' ngày. Do thực tế là Java JAX-WS ánh xạ các ngày tháng đến XMLGregorianCalendar thay vì Ngày ngay cả khi bạn đã định nghĩa nó như vậy trong các kiểu dữ liệu WSDL của bạn. – Omoro

Trả lời

18

Tại thời điểm hiện tại tôi nghĩ rằng đó là cách đơn giản nhất để làm điều đó:

ZonedDateTime now = ZonedDateTime.now(); 
GregorianCalendar gregorianCalendar = GregorianCalendar.from(now); 
XMLGregorianCalendar xmlGregorianCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(gregorianCalendar); 
Các vấn đề liên quan