Apache Axis – 序列化为0001-01-01T00:00:00.000Z的日历实例

我正在使用Apache Axis与用.Net编写的Web服务进行通信。

当WS遇到DateTime.MinDate (即“0001-01-01”)时,其中一个函数具有特殊处理。 现在,我正在尝试将此特殊值发送到WS,但似乎没有与Java中的DateTime.MinDate等效。

您可能知道,Axis将xsd:dateTime包装到Calendar对象中,所以我尝试发送new GregorianCalendar(1 ,1 ,1); 但这并没有成功。 我尝试了calendar.setTime(new Date(0)) ,我尝试了更多组合,但似乎没有任何序列化

0001-01-01T00:00:00.000Z

这就是我需要的。 有谁知道如何实现这一目标?

以下将创建一个GregorianCalendar对象,该对象将序列化为DateTime.MinValue的等效项。

 GregorianCalendar gc=new GregorianCalendar(1,0,1); gc.setTimeZone(TimeZone.getTimeZone("GMT-0")); 

请注意以下事项:

  • month参数基于零,而不是基于1。
  • GregorianCalendar默认为本地时区,因此需要手动调整时区。