【发布时间】:2015-07-30 09:32:35
【问题描述】:
我正在调用一个 Web 服务,它接受日期为格式为 "07/23/2015T00:00:00Z" 的 Xmlgregoriancalendar,但我目前从我的数据库中获得的是 "2015-23-07T00:00:00Z"。
如何转换这个String类型的XMLGregorianCalender类型的
"MM/dd/yyyy'T'HH:mm:ss.SSS'Z'"
由于该服务由某个第三方托管,我无法更改架构并需要实现此转换。
我试过了
Date d = new Date();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd'T'HH:mm:ss.SSS'Z'");
String formattedDate1 = sdf1.format(d);
Date date = sdf1.parse(formattedDate1);
GregorianCalendar gregorianCalendar;
XMLGregorianCalendar result = null;
gregorianCalendar = (GregorianCalendar)GregorianCalendar.getInstance();
gregorianCalendar.setTime(date);
result = DatatypeFactory.newInstance().newXMLGregorianCalendar(gregorianCalendar);
【问题讨论】:
-
您实际上是否将其作为字符串存储在数据库中?如果是这样,为什么?我不希望 XMLGregorianCalendar 使用“MM/dd/yyyy'T'HH:mm:ss.SSS'Z'”格式,因为这不是 XML 中的标准化格式...您正在调用的 Web 服务从它的声音来看,它已经很破碎了。我怀疑您需要改用 SimpleDateFormat。
-
否 实际上我正在从我的数据库中获取日期。知道如何将其转换为 XMLGregorianCalender。
-
您想从
2015-23-07T00:00:00Z转换为07/23/2015T00:00:00Z? -
" XmlgreogorianCalender 格式为 07/23/2015T00:00:00Z" 是没有意义的,因为这不是日期/时间的 XML 格式。正如我之前所说,您需要使用 SimpleDateFormat。
-
在我看来,您不能将 XMLGregorianCalendar 用于这种非标准格式。您需要自己创建 XML,并在构建时将日期时间表示为字符串。
标签: java date datetime calendar gregorian-calendar