在处理尚未为现代 java.time 类更新的旧代码时,我需要将ZonedDateTime
转换为XMLGregorianCalendar
。所以我想我应该通过GregorianCalendar
来打电话给GregorianCalendar.from( ZonedDateTime )
。
我看到了从XMLGregorianCalendar
到GregorianCalendar
的方法:XMLGregorianCalendar::toGregorianCalendar
。
➥我需要相反的内容,从GregorianCalendar
到XMLGregorianCalendar
。
答案 0 :(得分:0)
DatatypeFactory.newInstance().newXMLGregorianCalendar( … )
虽然XMLGregorianCalendar
和GregorianCalendar
类都不提供您需要的转换方法,但是有一种解决方法。
javax.xml.datatype.DatatypeFactory
对象可以通过调用其newXMLGregorianCalendar
方法从GregorianCalendar
转换为XMLGregorianCalendar
。
XMLGregorianCalendar xmlGregCal =
DatatypeFactory
.newInstance()
.newXMLGregorianCalendar( gregCal )
;
要完成您提到的整个层叠,从java.time.ZonedDateTime
到GregorianCalendar
再到XMLGregorianCalendar
。
XMLGregorianCalendar xmlGregCal =
DatatypeFactory
.newInstance()
.newXMLGregorianCalendar(
GregorianCalendar
.from(
myZonedDateTime
)
)
;
答案 1 :(得分:0)
另一种方法如下:
import com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl;
GregorianCalendar calendar = new GregorianCalendar();
XMLGregorianCalendar xmlGregorianCalendar = new XMLGregorianCalendarImpl(calendar);