我们使用JAX-RPC调用后端调用。我使用RAD8.5和后端提供的WSDL / XSD文件生成了JAX-RPC客户端。我们的客户端应用程序为我们提供了格式为yyyyMMdd(20130720)的字符串日期值。后端应用程序需要将此值格式化为yyyy-MM-ddZ。
使用JAX-RPC生成的对象需要一个Calendar对象来输入。所以我创建了一个转换为UTC(下面的代码)的Calendar对象并将其传入。结果XML在我的日期结束时缺少“Z”。二零一三年七月二十零日。
所以我的问题是,使用JAX-RPC如何在日期结束时包含“Z”以满足我后端的要求?我需要对Calendar对象或我的JAX-RPC实现做些什么吗?
日历创建代码
String requestedDate = "20130720"; //This is a parameter in a method.
Calendar requestedDateCal = Calendar.getInstance();
int year = 0;
int month = 0;
int day = 0;
year = Integer.parseInt((String) requestedDate.substring(0, 4));
month = Integer.parseInt((String) requestedDate.substring(4, 6));
day = Integer.parseInt((String) requestedDate.substring(6, 8));
requestedDateCal = DateTimeUtils.convertToGMTCalendar(year, month, day, 0, 0, 0, 0);
convertToGMTCalendar()的代码
Calendar localCalendar = convertToLocalCalendar(year, month, date, hour, minute, second, utcOffset);
TimeZone gmtTimeZone = TimeZone.getTimeZone("UTC");
Calendar gmtCalendar = Calendar.getInstance(gmtTimeZone);
gmtCalendar.setTimeInMillis(localCalendar.getTimeInMillis());
return gmtCalendar;
convertToLocalCalendar()的代码
TimeZone aTimeZone =
TimeZone.getTimeZone(TimeZoneConversion.GMT.getTimeZoneString() + Integer.toString(utcOffset));
Calendar localCalendar = Calendar.getInstance();
localCalendar.clear();
localCalendar.setTimeZone(aTimeZone);
localCalendar.set(year, month - 1, date, hour, minute, second);
return localCalendar;