it-swarm.com.de

Welches ist das richtige Format für Datum / Uhrzeit in einer XML-Datei?

Welches Format verwende ich für Datum/Uhrzeit, wenn ich mit .NET in eine XML-Datei schreibe? Benutze ich einfach DateTime.ToString() oder muss ich ein bestimmtes Format verwenden?

93
Jon B

Ich verwende immer das Format ISO 8601 (z. B. 2008-10-31T15:07:38.6875000-05:00) - date.ToString("o"). Dies ist auch das XSD-Datumsformat . Dies ist das bevorzugte Format und ein Standardformat für Datum und Uhrzeit , obwohl Sie bei Bedarf auch ein manuelles Format verwenden können, wenn zwischen Datum und Uhrzeit kein 'T' stehen soll: 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 class-Eigenschaft zuweisen. Wenn Sie XML-Text schreiben, verwenden Sie die oben genannten.

130
Ryan

EDIT: Das ist ein schlechter Rat. Verwenden Sie "o" wie oben. "s" macht das Falsche .

Ich benutze immer folgendes:

dateTime.ToUniversalTime().ToString("s");

Dies ist richtig, wenn Ihr Schema folgendermaßen 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

41
jonnii

Wenn Sie die XML-Zeichenfolge manuell zusammenstellen, verwenden Sie var.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffZ"));. Dadurch wird das offizielle XML-Datum/Uhrzeit-Format ausgegeben. Sie müssen sich jedoch keine Gedanken über das Format machen, wenn Sie die integrierten Serialisierungsmethoden verwenden.

4
chilltemp

Was hat die DTD zu sagen?

Wenn die XML-Datei für die Kommunikation mit anderer vorhandener Software (z. B. SOAP) vorgesehen ist, prüfen Sie, ob diese Software die erwarteten Anforderungen erfüllt.

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 den 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, ist dies diejenige, die ich vorschlagen würde.

3
Tanktalus

Die Klasse XmlConvert bietet diese Möglichkeiten. Achten Sie insbesondere bei DateTimes auf veraltete Methoden. Siehe auch: https://stackoverflow.com/a/7457718/1288109

0