2

Java で記述された Web サービスを呼び出す必要がある C# デスクトップ クライアントを作成しています。パラメータのうち 2 つは Calendar 型です。これら 2 つの日付を 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# から Calendar パラメータを渡す方法について何か提案はありますか?

ありがとう!

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 に答える