2011-07-18 28 views
1

c#4.0(VS2010)のWCFを使用してWebサービス経由でSAPにデータをアップロードする必要があります。私は接続し、データを投稿することができましたが正常にWebサービスを使用して、私は日付と時間の問題に遭遇した。c#DateTime to Java Java時間とSAP WebサービスのJava日付

私は、ActualMeterReadingDateとActualMeterReadingTimeという2つのフィールドを持つMtrRdngDocERPRsltCrteReqRsltというクラスを持っています。 Visual Studioがプロキシクラスを生成すると、これらのオブジェクトがdatetimeオブジェクトとして変換されましたが、(JAVAで実装されている)Webサービスのもう一方の側の日付と時刻です。

問題は、datetime値をこれらのフィールドに渡すと、シリアル化されず、もう一方の端で受信されないということです。

また、WebサービスによってDateTimeとして定義された日付をシリアル化すると、これらは完全に機能します。

次のコードを使用してオブジェクト全体をシリアル化し、xmlとしてローカルに保存しましたが、同じ問題があります。


public void SerializeToXML(MeterReadingUploadWS2.MtrRdngDocERPRsltBulkCrteReqMsg bb, string path) 
{ 
System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(bb.GetType()); 

      var serializer = new System.Xml.Serialization.XmlSerializer(bb.GetType()); 

      using (var writer = System.Xml.XmlWriter.Create(path)) 
      {       
       serializer.Serialize(writer, bb); 
      } 
     } 
+0

xmlにローカルでシリアル化するときに、bbオブジェクトの外観を表示できますか? – Jethro

答えて

1

のC#のDateTimeのとJavaのDateオブジェクトは異なるものですので、それは、それを達成するために最も近い一般的な相互運用方法ですので、私はいくつかの時間前ということをやって、いくつかのトラブルがあったが、私は長いプロパティを操作することにしました異なる言語から

+0

あなたは日付をLongに変換することを意味しますか? –

+0

Webサービスを変更して、合意された文字列形式で日付と時刻を受け入れるようにしました。私はそれが一番簡単だと思う。今後このような問題を避けるために、Webサービスではdatetimesのみが公開されていることを確認します。 –

+0

はい、それをlongに変換します。両方のアプローチ(ロングまたはストリングを使用)は、あなたのニーズに合わせています:) 答えは受け入れ可能とマークできますか? – everton

関連する問題