2017-07-17 4 views
0

Ich arbeite an asp.net C# Projekt, wo ich eine Eingabe von Benutzern als DD/MM/YYYY nähme.Convert Datum zu XML-Webdienst Datum asp.net

Deshalb mag ich das Eingangsdatum durch den Benutzer an den Webdienst übergeben, die das Datumsformat als erwartet (2017-07-15T08: 01: 55.800Z) vom Typ < format = "impl: DateBean" />

Jetzt Problem, das ich habe den Eingang YYYY-DD-MMT

Ihre Hilfe und Hinweis auf ein nützliches Thema sind

Was ich bekomme Fehler appreacited Umwandlung „kann ich versuche immer Wert‘ t konvertiert implizit den Typ "[string], [system.datetime]" oder "whatsover". ‚Mywebservice.DateBean

Dies ist, wie ich den Aufbau der Web-Service eingeben aufzurufen:

MyWebService.top_ELEMENT_NAME srvBeanIn = new MyWebService.top_ELEMENT_NAME(); 
srvBeanIn.input = new MyWebService.webServiceElementTop(); 
srvBeanIn.input.paymentOrder = new MyWebService.ELEMENT_NAME[1]; 
srvBeanIn.input.paymentOrder[0] = new MyWebService.ELEMENT_NAME(); 

Dies ist, wie ich versuche, das Datum

var input = "17/07/2017"; 
CultureInfo provider = CultureInfo.InvariantCulture; 
const string inputFormat = "dd/MM/yyyy"; 
DateTime parsed; 


try 
{ 
    parsed = DateTime.ParseExact(input, inputFormat, provider); 
    Debug.WriteLine("parsed nj wire= " + parsed); 
    var isoResult = parsed.ToUniversalTime().ToString("o"); //--> 2017-07-15T08:01:55.800Z 
    srvBeanIn.input.paymentOrder[0].MyDate.date = parsed; 

} 
catch (FormatException) 
{ 
    Debug.WriteLine("{0} is not in the correct format.", input); 
} 

Und hier zu passieren ist das xML-Tag ich in der WSDL

<xsd:complexType name="DateBean"> 
     <xsd:complexContent mixed="false"> 
      <xsd:extension base="impl:BaseSOIBean"> 
      <xsd:sequence> 
       <xsd:element name="date" nillable="true" type="xsd:dateTime" /> 
      </xsd:sequence> 
      </xsd:extension> 
     </xsd:complexContent> 
     </xsd:complexType> 


<xsd:element name="swiftDate" nillable="true" type="impl:DateBean" /> 
+0

ist es DataContractSerializer Sie auf webservice mit? Sie müssen den Code hier als weitere Informationen angeben. – codeSetter

+0

Ich habe keinen Quellcode, aber ich habe die WSDL des Web-Service und hier ist das Element:

+0

Wie Sie Anfrage erstellen .. dieser Code ist vorher wichtig. – codeSetter

Antwort

0

Zuerst analysieren die Zeichenfolge eingegeben ein DateTime haben das angegebenen Eingabeformat verwendet, dann in UTC umwandeln, dann ISO-String isoResult:

var input = "17/07/2017"; 

CultureInfo provider = CultureInfo.InvariantCulture; 

const string inputFormat = "dd/MM/yyyy"; 
DateTime parsed; 

try { 
    parsed = DateTime.ParseExact(input, inputFormat, provider); 
    var isoResult = parsed.ToUniversalTime().ToString("o"); 
} 
catch (FormatException) { 
    Console.WriteLine("{0} is not in the correct format.", input); 
} 

den ISO-String Mit dem DateBean erstellen.

+0

Hallo, vielen Dank für Ihre Antwort. Ich bekomme immer noch den gleichen Fehler wie die Übergabe von var oder string ist nicht akzeptabel mit tihs Fehler

+0

Ich bin nicht vertraut mit dem 'DateBean' Typ. Ist es ein benutzerdefinierter Typ Ihres WebServices? Versuchen Sie, ein neues DateBean-Objekt mithilfe der konvertierten Zeichenfolge oder DateTime zu instanziieren, und fügen Sie es dann zur Anfrage hinzu. –

+0

kann ich parsed.ToUniversalTime(). ToString ("o") bis heute konvertieren? weil [var] oder [string] nicht akzeptiert wird. –