2012-10-15 40 views
2

我正在編寫需要調用用Java編寫的Web服務的C#桌面客戶端。其中兩個參數的類型爲Calendar。我試圖將這兩個日期傳遞給Web服務非常困難。C#使用Calendar參數調用Java 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#日曆參數?

謝謝!

+1

既然你打電話給webservice,你有沒有嘗試用JavaScriptSerializer在json中序列化日期? – frenchie

+1

'XMLGregorianCalendar'是什麼樣的? –

回答

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

然後,你可以簡單的叫打印和解析方法。

如果您正在使用某種數據綁定方法,請提及它。

+0

我同意,我會切換到字符串。謝謝你們的幫助! –