1

我们使用 JAX-RPC 调用后端调用。我使用 RAD8.5 和后端提供的 WSDL/XSD 文件生成了 JAX-RPC 客户端。我们的客户端应用程序为我们提供了格式为 yyyyMMdd (20130720) 的字符串日期值。后端应用程序需要这个格式为 yyyy-MM-ddZ 的值。

使用 JAX-RPC 生成的对象,它需要一个 Calendar 对象用于该输入。因此,我创建了一个转换为 UTC 的日历对象(下面的代码)并将其传入。生成的 XML 在我的日期结束时缺少“Z”。2013 年 7 月 20 日。

所以我的问题是,使用 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;
4

0 回答 0