java - Apache Axis - 序列化为 0001-01-01T00 :00:00. 000Z 的日历实例

标签 java .net xsd calendar axis

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

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

您可能知道,Axis 包裹 xsd:dateTime进入Calendar对象,所以我尝试发送 new GregorianCalendar(1 ,1 ,1);但这并没有达到目的。我试过calendar.setTime(new Date(0)) ,我尝试了更多组合,但似乎没有任何内容被序列化为

<endDate xsi:type="xsd:dateTime">0001-01-01T00:00:00.000Z</endDate>

这就是我所需要的。有谁知道如何实现这一点吗?

最佳答案

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

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

注意以下几点:

  • 月份参数从 0 开始,而不是从 1 开始。
  • GregorianCalendar 默认为本地时区,因此时区需要 手动调整。

关于java - Apache Axis - 序列化为 0001-01-01T00 :00:00. 000Z 的日历实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7519800/

相关文章:

java - 谁能解释一下 Applet 和 AWT?

.net - Crystal 报表和 LINQ

c# - 从另一个单独的 .NET 程序访问一个 .NET 程序中的变量

C#:UserManager.FindAsync 始终找到匹配项

java - XML验证: Invalid content was found starting with element

java - 解决 Java 中的 Codechef 问题

java - Sprite 动画计时java swing

java - JVisualVM: "Local Applications Cannot Be Detected"

c# - 带有 **NO** app.config 的 dataset.xsd

java - 根据 JSON 验证 XML