转换字符串" 2015-23-07T00:00:00Z"到格式的XMLGregorianCalender" 07/23 / 2015T00:00:00Z"

时间:2015-07-30 09:32:35

标签: java date datetime calendar gregorian-calendar

我正在调用一个Web服务,它接受日期格式为"07/23/2015T00:00:00Z"的Xmlgregoriancalendar,但我目前从我的数据库中获取的是"2015-23-07T00:00:00Z"

如何转换

类型的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);

2 个答案:

答案 0 :(得分:1)

java.text.DateFormat outputFormat =new java.text.SimpleDateFormat("MM/dd/yyyy'T'HH:mm:ss'Z'");
java.text.DateFormat outputFormat1 =new java.text.SimpleDateFormat("yyyy-dd-MM'T'HH:mm:ss'Z'");
System.out.println(outputFormat.format(outputFormat1.parse("2015-23-07T00:00:00Z")));//07/23/2015T00:00:00Z

答案 1 :(得分:0)

您可以使用SimpleDateFormat执行此操作。

从数据库中抓取字符串,查找并替换" - "用" \"然后将String解析为Date。实际上,SimpleDateFormat会接受"MM-dd-yyyy'T'HH:mm:ss.SSS'Z'"类型以及"MM/dd/yyyy'T'HH:mm:ss.SSS'Z'",您可以对其进行一些计算。