2012-01-26 10 views
0

私は少し問題があります。 NSDateをsoap webメソッドのパラメータとして送信する必要があります。私はこのようなデータを送信する目的-CからのNSDateをsoap Webサービスに送信する方法 - .net

[WbMethod] 
public void Method(DateTime date){... 

:私はalse%の@に%dを変更しようとしたし、エラーがある

...<faultstring>Server was unable to read request. ---&gt; There is an error in XML document (1, 354). ---&gt; The string '93462576' is not a valid AllXsd value.</faultstring><detail /></soap:Fault></soap:Body></soap:Envelope> 

NSDate* date = [NSDate date]; 

    ... 
    NSString *soapMsg = 
     [NSString stringWithFormat: 
     @"<?xml... 
      "<date>%d</date>" 
     ... 
     "</soap:Body>" 
     "</soap:Envelope>", date 
     ]; 

私はエラーを得ました:

...faultstring>Server was unable to read request. ---&gt; There is an error in XML document (1, 371). ---&gt; The string '2012-01-26 14:27:45 +0000' is not a valid AllXsd value.</faultstring><detail /></soap:Fault></soap:Body></soap:Envelope> 
+0

探しているものでしょうか?タイムスタンプ、日時、その他のカスタム "yyyMMddhhmm"? – mit3z

+0

SOAPリクエストの日付はどのような形式にする必要がありますか? – bbarnhart

+0

DateTimeカスタムフォーマットはありません。月/日/年時、分、秒。 – 1110

答えて

2

それはあなたが言及した形式である必要があれば、

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"MM/dd/yyyy hh,mm,ss"]; 
NSString *yourDateString = [formatter stringFromDate:[NSDate date]]; 
[formatter release]; 
+0

私はこの日付形式を使用しており、それは機能しました:yyyy-MM-dd'T'HH:mm:ss – 1110

2

なぜ%dを整数を表します。 NSDateのUNIXタイムスタンプを取得しようとしていますか?その場合は、timeIntervalSince1970を使用するか、descriptionを使用して、NSDateオブジェクトの文字列表現を取得します。

+0

私もこれを試して、 '%f'としてサービスに渡してエラーが発生します。文字列 '1327652581.522795'は有効なAllXsd値ではありません。これは私が日付を取得する方法です:NSTimeInterval date = [now timeIntervalSince1970]; – 1110

+0

%fはfloatを表し、%dは整数を表します。それらの誰も実際にNSDateを使用可能なformateに変換しません。 SOAPサービスにyyyyMMddhhmm形式が必要な場合は、他のユーザーの提案に応じてNSDateFormatterを使用できます。 –

1

NSDateFormatterは、あなたのサービスが期待する何を日付形式あなたは

関連する問題