在处理尚未为现代java.time类更新的旧代码时,我需要将ZonedDateTime
转换为XMLGregorianCalendar
。所以我想我会以GregorianCalendar
的方式打电话给GregorianCalendar.from( ZonedDateTime )
。
我看到了从XMLGregorianCalendar
转到GregorianCalendar
的方法:XMLGregorianCalendar::toGregorianCalendar
。
need我需要相反的内容,从GregorianCalendar
转到XMLGregorianCalendar
。
最佳答案
DatatypeFactory.newInstance().newXMLGregorianCalendar( … )
虽然XMLGregorianCalendar
和GregorianCalendar
类都不提供您需要的转换方法,但是有一种解决方法。javax.xml.datatype.DatatypeFactory
对象可以通过调用其GregorianCalendar
方法从XMLGregorianCalendar
转换为newXMLGregorianCalendar
。
XMLGregorianCalendar xmlGregCal =
DatatypeFactory
.newInstance()
.newXMLGregorianCalendar( gregCal )
;
要完成您提到的整个层叠,从
java.time.ZonedDateTime
到GregorianCalendar
到XMLGregorianCalendar
。XMLGregorianCalendar xmlGregCal =
DatatypeFactory
.newInstance()
.newXMLGregorianCalendar(
GregorianCalendar
.from(
myZonedDateTime
)
)
;