将GregorianCalendar转换为XML

时间:2019-12-09 22:21:37

标签: java gregorian-calendar

在处理尚未为现代 java.time 类更新的旧代码时,我需要将ZonedDateTime转换为XMLGregorianCalendar。所以我想我应该通过GregorianCalendar来打电话给GregorianCalendar.from( ZonedDateTime )

我看到了从XMLGregorianCalendarGregorianCalendar的方法:XMLGregorianCalendar::toGregorianCalendar

➥我需要相反的内容,从GregorianCalendarXMLGregorianCalendar

2 个答案:

答案 0 :(得分:0)

DatatypeFactory.newInstance().newXMLGregorianCalendar( … )

虽然XMLGregorianCalendarGregorianCalendar类都不提供您需要的转换方法,但是有一种解决方法。

javax.xml.datatype.DatatypeFactory对象可以通过调用其newXMLGregorianCalendar方法从GregorianCalendar转换为XMLGregorianCalendar

XMLGregorianCalendar xmlGregCal = 
        DatatypeFactory
        .newInstance()
        .newXMLGregorianCalendar( gregCal ) 
;

要完成您提到的整个层叠,从java.time.ZonedDateTimeGregorianCalendar再到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);