Welches Format verwende ich für Datum / Uhrzeit beim Schreiben in eine XML-Datei mit .NET? Benutze ich einfach DateTime.ToString()
oder muss ich ein bestimmtes Format verwenden?
Ich benutze immer das ISO 8601 Format (zB 2008-10-31T15:07:38.6875000-05:00
) - date.ToString("o")
. Es ist auch das XSD-Datumsformat . Dies ist das bevorzugte Format und eine Standardzeichenfolge für Datum und Uhrzeit. Sie können jedoch bei Bedarf eine manuelle Formatzeichenfolge verwenden, wenn Sie das 'T' nicht zwischen Datum und Uhrzeit möchten:date.ToString("yyyy-MM-dd HH:mm:ss");
BEARBEITEN: Wenn Sie eine generierte Klasse aus einer XSD oder einem Webdienst verwenden, können Sie die DateTime-Instanz einfach direkt der Klasseneigenschaft zuweisen. Wenn Sie XML-Text schreiben, verwenden Sie die oben genannten.
EDIT: Das ist ein schlechter Rat. Verwenden Sie "o" wie oben. "s" macht das Falsche .
Ich benutze immer das:
dateTime.ToUniversalTime().ToString("s");
Dies ist richtig, wenn Ihr Schema so aussieht:
<xs:element name="startdate" type="xs:dateTime"/>
Was dazu führen würde:
<startdate>2002-05-30T09:00:00</startdate>
Weitere Informationen erhalten Sie hier: http://www.w3schools.com/xml/schema_dtypes_date.asp
Wenn Sie die XML-Zeichenfolge manuell zusammenstellen, verwenden Sie
var.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffZ"));
Dies gibt das offizielle XML-Datums- / Uhrzeitformat aus. Sie müssen sich jedoch keine Gedanken über das Format machen, wenn Sie die integrierten Serialisierungsmethoden verwenden.quelle
Was hat die DTD zu sagen?
Wenn die XML-Datei für die Kommunikation mit anderer vorhandener Software (z. B. SOAP) vorgesehen ist, überprüfen Sie diese Software auf die erwarteten Ergebnisse.
Wenn die XML-Datei für die Serialisierung oder Kommunikation mit nicht vorhandener Software (z. B. der von Ihnen geschriebenen) vorgesehen ist, können Sie sie definieren. In diesem Fall würde ich etwas vorschlagen, das sowohl leicht in der Sprache Ihrer Wahl zu analysieren als auch für Menschen leicht zu lesen ist. Wenn Ihre Sprache (ob VB.NET oder C # .NET oder was auch immer) es Ihnen ermöglicht, ISO-Daten (JJJJ-MM-TT) einfach zu analysieren, würde ich diese vorschlagen.
quelle
Die
XmlConvert
Klasse bietet diese Art von Einrichtungen. Seien Sie insbesondere bei DateTimes vorsichtig mit veralteten Methoden. Siehe auch: https://stackoverflow.com/a/7457718/1288109quelle