Benutzerdefinierte DateTime-Formate bei Verwendung von DataSet.WriteXml in .NET

8

Ich habe ein Problem, bei dem ich ein DataSet nach XML schreibe, das eine Spalte vom Typ DateTime hat und ich möchte das Ausgabeformat steuern.

%Vor%

Das Format der DateTime im XML scheint standardmäßig wie folgt zu sein:

%Vor%

Ich möchte ein benutzerdefiniertes Datumsformat verwenden oder zumindest die Zeitzoneninformationen entfernen.

Gibt es eine Möglichkeit, das Format der DateTime-Spalten in meinem XML-Dataset zu steuern?

Mein Bauchgefühl sagt nein, da ich annahm, dass es so gemacht wird, um die Konvertierung von Daten über Zeitzonen hinweg zu ermöglichen, aber ich habe festgestellt, dass ich DataSet XML erfolgreich lesen kann, auch wenn DateTime-Spalten-Tags die Zeitzonendaten weglassen kann etwas analoges beim Schreiben in XML tun.

    
Mike Marshall 03.08.2011, 19:21
quelle

4 Antworten

-1

Es gibt ein Standardformat für DateTime in XML. Das ist das Format, das WriteXml verwenden wird. Wenn Sie ein anderes Format benötigen, müssen Sie DateTime nicht verwenden. Wie andere gesagt haben, verwenden Sie stattdessen String .

    
John Saunders 03.08.2011, 19:41
quelle
11

Diese Problemumgehung könnte für Sie geeignet sein, wenn Sie nur mit der Entfernung der Zeitzoneninformationen leben können. Der Standardwert für die DateTimeMode-Eigenschaft von DateTime-Spalten in DataSets ist Nicht angegeben. Sie könnten den DateTimeMode explizit auf "Nicht angegeben" festlegen, was bedeutet, dass der Zeitzonenteil nicht serialisiert wird.

z.B.

Sie können eine Funktion wie folgt verwenden:

%Vor%

Anwendungsbeispiel:

%Vor%

Ausgabe:

Standard.xml:

%Vor%

OhneZeitzone.xml:

%Vor%

Wenn Sie die Idee, die DataColumns Ihres ursprünglichen DataSets zu ändern, nicht mögen, können Sie eine Kopie davon erstellen und dann die Funktion für die Kopie aufrufen.

    
Moe Sisko 04.08.2011 03:31
quelle
1

XSLT-Transformation auf DataSet anwenden: (aus MSDN ) (Ich glaube, dass Sie XSLT-Beispiel finden, um DateTime-Format zu konvertieren, oder auf SO veröffentlichen in Bezug auf XSLT und DateTime-Formate )

%Vor%     
sll 03.08.2011 19:34
quelle
-1

Wenn die Datei regulär ist und das exportierte XML so aussieht, können Sie es einfach mit einer einfachen Schleife umschreiben. Einfache und schnelle Lösung. Verwenden Sie etwas von meinem Code, wenn Sie möchten:

%Vor%

Die Ausgabe ist wie folgt:

%Vor%

Anstelle von:

%Vor%     
Adam Kowalski 22.03.2013 20:47
quelle

Tags und Links