Java:如何将Instant类型转换为XMLGregorianCalendar类型?
代码: 现在如何将变量转换为XMLGregorianCalendar类型?我一直在做这方面的研究,我很困惑。我没有发现类似的问题,所以任何东西都是有用的 注:Java:如何将Instant类型转换为XMLGregorianCalendar类型?,java,Java,代码: 现在如何将变量转换为XMLGregorianCalendar类型?我一直在做这方面的研究,我很困惑。我没有发现类似的问题,所以任何东西都是有用的 注: 我正在使用Java 6。您可以这样做: private static Instant now; now = new Instant(); 如果您这样做只是因为您想将即时格式化为ISO 8601格式的字符串,那么有一种更简单的方法: Instant now = Instant.now(); GregorianCalendar cal1
我正在使用Java 6。您可以这样做:
private static Instant now;
now = new Instant();
如果您这样做只是因为您想将即时
格式化为ISO 8601格式的字符串
,那么有一种更简单的方法:
Instant now = Instant.now();
GregorianCalendar cal1 = new GregorianCalendar();
cal1.setTimeInMillis(now.toEpochMilli());
XMLGregorianCalendar cal2 = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal1);
编辑-对于Joda Time类
Instant
,使用now.getMillis()
而不是now.toEpochMilli()
是否有特殊原因需要XMLGregorianCalendar
对象?新的Java 8日期和时间类已经支持ISO 8601日期格式,如果您这样做是因为需要以ISO 8601格式格式化或解析日期和时间(这是XML中使用的日期和时间的标准格式)。我使用org.jode.time中的Instant类。这也是你正在使用的版本吗?因为我没有toEpochMilli方法(不,这是Java 8类Instant
。但是它有一个类似的方法,getMillis()
。请参阅。或者您可以简单地执行-…:-)@PrakashK,但这将为您提供一个字符串,而不是XMLGregorianCalendar
。
String dateTime = DateTimeFormatter.ISO_INSTANT.format(now);