2009-03-19 27 views

Antwort

44

Xml Leser im Allgemeinen erwarten Daten/Zeiten in einem ganz bestimmten Format; Sie können sich selbst verwenden diese XmlConvert mit:

string s = XmlConvert.ToString(DateTime.Now); 
DateTime when = XmlConvert.ToDateTime(s); 

Wenn Sie etwas anderes verwenden, werden Sie es als eine Zeichenfolge lesen und DateTime.TryParseExact (oder ähnlich) verwenden, um die tatsächliche Format-String zu spezifizieren:

string s = reader.ReadContentAsString(); 
DateTime when = DateTime.ParseExact(s, "M/d/yy hh:mm tt", 
    CultureInfo.InvariantCulture); 

wenn Sie XmlSerializer verwenden, könnten Sie eine Shim-Eigenschaft verwenden, um die Konvertierung zu tun - lassen Sie mich wissen, ob dies ist, was Sie tun ...

+0

Die Daten, die ich eingab, passierten zufällig am 29.10.2012, 15:25 Uhr und das scheiterte. Als ich es zu 10/11/2012 15:25 änderte, funktionierte es. –

+0

@MarcGravell, wenn ich versuche, einige RSS-Feeds mit 'XmlSerializer' zu deserialisieren, verursacht 'PubDate'-Element einen Fehler. wie kann ich es reparieren? – burhan

+2

@burhan, indem Sie betrachten, wie der Wert hereinkommt, und ihn angemessen behandeln? Alternativ dazu enthält das Kern-Framework RSS-bezogene Klassen, die möglicherweise eine bessere Arbeit leisten. –

82

nach der XML-Spezifikation schema, Datum Zeitwerte sollten in ISO860 B. so etwas wie

2009-03-13T22:16:00 
+2

Verwenden Sie in Ruby die 'iso8601' Methode, zB' Time.now.iso8601'. – Zubin

+2

Aus Neugier, ISO8601-Format sollte so aussehen wie '2009-03-18T22: 16: 00-05: 00', aber Davids Antwort (unterlassen der Zeitzone) funktioniert auch für mich (während das ISO8601-Format nicht funktioniert). Liegt das an einer lokalen Serialisierung im XmlConverter (benötigt also keine Zeitzone)? – djiango

+1

In ISO8601 ist die Zeitzone optional, daher sind sowohl meine ursprüngliche Zeichenfolge als auch Ihre Zeichenfolge gültige ISO8601-Datumswerte. Laut http://www.w3.org/TR/xmlschema-2/#deviantformats ist die Zeitzone im XML-Schema optional. Ich bin mir nicht sicher, warum die Zeitzonenversion nicht für Sie funktioniert. –

Verwandte Themen