【发布时间】:2018-05-22 13:16:21
【问题描述】:
我有一个日期字符串,看起来就像这样。
2017-12-06T17:39:00Z
我想做的是将此字符串转换为 XMLGregorianCalendar 但使用相同的格式。
我现在做的是:
String choosenDate = 2017-12-06T17:39:00Z;
GregorianCalendar c = new GregorianCalendar();
DateTimeFormatter timeFormatter = DateTimeFormatter.ISO_DATE_TIME;
TemporalAccessor accessor = timeFormatter.parse(dateChoisie);
Date date = Date.from(Instant.from(accessor));
c.setTime(date);
System.err.println("choosenDate: " + dateChoisie);
System.err.println("date : " + date);
XMLGregorianCalendar dateXMLGreg = null;
try
{
dateXMLGreg = DatatypeFactory.newInstance().newXMLGregorianCalendar(c);
System.err.println("dateXMLGreg: " + dateXMLGreg);
}
catch (DatatypeConfigurationException e)
{
messages.addMessage(new MessageBuilder().error().code("webservice.failure").build());
}
这给了我以下输出:
10:47:45,957 错误 [stderr](默认任务 47)选择日期: 2017-12-06T17:39:03Z
10:47:45,957 错误 [stderr](默认任务 47)日期:12 月 6 日星期三 2017 年中欧时间 18:39:03
10:47:45,958 错误 [stderr](默认任务 47)dateXMLGreg: 2017-12-06T18:39:03.000+01:00
那么我该怎么做才能让我的 XMLGregorianCalendar dateXMLGreg 看起来像:
2017-12-06T17:39:03Z
【问题讨论】:
-
这并不是真正不同的格式(这始终是 ISO 8601),它“只是”与 UTC 的时区偏移。不过,我知道您会希望保持不变。
-
@BasilBourque,感谢您指出这一点,您启发了my answer below 的编辑。
标签: java date xmlgregoriancalendar