将 GregorianCalendar 转换为 XMLGregorianCalendar
Convert GregorianCalendar to XMLGregorianCalendar
在使用尚未针对现代 java.time 类 更新的遗留代码时,我需要转换 ZonedDateTime
to XMLGregorianCalendar
. So I thought I'd go by way of GregorianCalendar
, calling GregorianCalendar.from( ZonedDateTime )
。
我看到了从 XMLGregorianCalendar
到 GregorianCalendar
的方法:XMLGregorianCalendar::toGregorianCalendar
。
➥ 我需要相反的东西,从 GregorianCalendar
到 XMLGregorianCalendar
。
DatatypeFactory.newInstance().newXMLGregorianCalendar( … )
虽然 XMLGregorianCalendar
和 GregorianCalendar
类 都没有提供您需要的转换方法,但有一个解决方法。
一个javax.xml.datatype.DatatypeFactory
object can convert from GregorianCalendar
to XMLGregorianCalendar
by calling its newXMLGregorianCalendar
方法。
XMLGregorianCalendar xmlGregCal =
DatatypeFactory
.newInstance()
.newXMLGregorianCalendar( gregCal )
;
完成你提到的整个级联,从java.time.ZonedDateTime
到GregorianCalendar
再到XMLGregorianCalendar
。
XMLGregorianCalendar xmlGregCal =
DatatypeFactory
.newInstance()
.newXMLGregorianCalendar(
GregorianCalendar
.from(
myZonedDateTime
)
)
;
另一种方式如下:
import com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl;
GregorianCalendar calendar = new GregorianCalendar();
XMLGregorianCalendar xmlGregorianCalendar = new XMLGregorianCalendarImpl(calendar);
在使用尚未针对现代 java.time 类 更新的遗留代码时,我需要转换 ZonedDateTime
to XMLGregorianCalendar
. So I thought I'd go by way of GregorianCalendar
, calling GregorianCalendar.from( ZonedDateTime )
。
我看到了从 XMLGregorianCalendar
到 GregorianCalendar
的方法:XMLGregorianCalendar::toGregorianCalendar
。
➥ 我需要相反的东西,从 GregorianCalendar
到 XMLGregorianCalendar
。
DatatypeFactory.newInstance().newXMLGregorianCalendar( … )
虽然 XMLGregorianCalendar
和 GregorianCalendar
类 都没有提供您需要的转换方法,但有一个解决方法。
一个javax.xml.datatype.DatatypeFactory
object can convert from GregorianCalendar
to XMLGregorianCalendar
by calling its newXMLGregorianCalendar
方法。
XMLGregorianCalendar xmlGregCal =
DatatypeFactory
.newInstance()
.newXMLGregorianCalendar( gregCal )
;
完成你提到的整个级联,从java.time.ZonedDateTime
到GregorianCalendar
再到XMLGregorianCalendar
。
XMLGregorianCalendar xmlGregCal =
DatatypeFactory
.newInstance()
.newXMLGregorianCalendar(
GregorianCalendar
.from(
myZonedDateTime
)
)
;
另一种方式如下:
import com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl;
GregorianCalendar calendar = new GregorianCalendar();
XMLGregorianCalendar xmlGregorianCalendar = new XMLGregorianCalendarImpl(calendar);