2

我正在编写一个需要调用用 Java 编写的 Web 服务的 C# 桌面客户端。其中两个参数是日历类型。我在尝试将这两个日期传递给 Web 服务时遇到了很大的困难。

我尝试了以下方法,均未成功。

DateTime startDate = DateTime.Now;
DateTime endDate = startDate.AddDays(2);

DateTime startDate = new DateTime(2012, 3, 1, 1, 1, 1, DateTimeKind.Unspecified);
DateTime endDate = new DateTime(2012, 4, 1, 1, 1, 1, DateTimeKind.Unspecified);

DateTime startDate = new DateTime(2012, 3, 1, 1, 1, 1, DateTimeKind.Utc);
DateTime endDate = new DateTime(2012, 4, 1, 1, 1, 1, DateTimeKind.Utc);

DateTime startDate = new DateTime(2000, 1, 1, new System.Globalization.GregorianCalendar());
DateTime endDate = new DateTime(2012, 1, 1, new System.Globalization.GregorianCalendar());

我使用以下代码编写了一个测试 Java 客户端,这可以工作......

GregorianCalendar calStartDate = new GregorianCalendar();
GregorianCalendar calEndDate = new GregorianCalendar();

calStartDate.set(2011, 5, 21);
calEndDate.set(2012, 5, 24);

XMLGregorianCalendar startDate = dtf.newXMLGregorianCalendar(calStartDate);
XMLGregorianCalendar endDate = dtf.newXMLGregorianCalendar(calEndDate);

关于如何从 C# 传递日历参数的任何建议?

谢谢!

4

1 回答 1

0

到目前为止,最简单和最便携的做法是将日期转换为包含时区的字符串,例如 ISO8601 格式。

一个警告:SimpleDateFormat java 类不是线程安全的。你最好还是使用

http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html

或者

http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/time/FastDateFormat.html

然后您将简单地调用 print 和 parse 方法。

如果您使用某种数据绑定方法,请提及。

于 2012-10-15T14:48:30.787 回答