Apache轴:Calendar对象中返回错误的日期

时间:2012-05-18 13:15:07

标签: calendar axis

使用Apache轴来使用列type="xsd:dateTime"的WSDL。 在带有普通vanilla请求的SOAP UI中,响应具有 -

 <UpdateDateTime>2012-05-08T04:58:00</UpdateDateTime>

然而,当使用轴消费者时,对于相同的值 - l istOfValues[pos].getUpdateDateTime().getTime()返回不同的时间 - 2012-05-07 21:58:00。 上面的getUpdateDateTime()返回java.util.Calendar的实例。

是时区问题还是中间的'T'被解析不正确? 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您如何显示“2012-05-07 21:58:00”?这几乎肯定只是一个时区问题。我怀疑它将2012-05-08T04:58:00视为一个普遍的时间,并将当地时区应用于此。很难说没有看到任何代码或诊断来自哪里,但如果不是只是时区问题,我会感到惊讶。

当然,如果您可以使用Joda Time代替java.util.Date/Calendar,则可以使用LocalDateTime这是我怀疑在此处所代表的内容(假设响应中缺少时区信息) )。我不知道Axis是否支持这一点,但值得研究。

答案 1 :(得分:0)

以下是Inspect中的日期时间值的Eclipse调试 -

http://i45.tinypic.com/157zpy1.jpg

&安培; soap UI中的普通请求给出了 -

2012-05-08T04:58:00 印度孟买

对不起,我的第一个回复是指UTC。