C# 使用日历参数调用 Java Web 服务

标签 c# java

我正在编写一个 C# 桌面客户端,它需要调用一个用 Java 编写的 Web 服务。其中两个参数是 Calendar 类型。我很难尝试将这两个日期传递给网络服务。

我试过以下方法,都没有成功。

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# 传递日历参数有什么建议吗?

谢谢!

最佳答案

到目前为止,最简单和最便携的做法是将日期转换为包含时区的字符串,例如 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 方法即可。

如果您使用某种数据绑定(bind)方法,请注明。

关于C# 使用日历参数调用 Java Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12897930/

相关文章:

C# - 使用什么属性来支持使用 XMLSerializer 和 DataContractSerializer 进行序列化?

c# - 类应该同时实现 IAsyncDisposable 和 IDisposable 吗?

java - 在 Java 中使未处理的异常破坏程序

javascript - 加载时修改模态窗口中的数据

Java/使用 Junit 4 给出编译错误

c# - 为什么处理输出阅读器返回空数据?当其他进程中的相同代码正常工作时

使用 AES 的 Java 卡加密返回 6F00

java - 什么是 JUnit 5 中的容器

java - .jar 文件仅在 Eclipse 中使用时才有效

java - 应用程序没有响应