So werden DateTime-Objekte im ISO 8601-Format analysiert und generiert

Es gibt diesen SOAP-Webdienst, der mir datetime-Objekte im folgenden Format sendet:

2016-03-29T12:20:35.093-05:00

Das ist der 29. März des Jahres 2016. Stunde: 12: 20: 35.093 (GMT-5).

Ich möchte in der Lage sein, ein @ zu erstellDateTime Objekt, wie folgt:

DateTime.Now

und erhalten Sie die Zeichenfolgendarstellung in dem oben beschriebenen Format sowie die umgekehrte Operation, erstellen Sie eine DateTime aus einer Zeichenfolge wie der oben angegebenen.

Ich habe Folgendes versucht, um das Datum zu erstellen:

new DateTime(2016, 3, 29, 12, 20, 35, 093, DateTimeKind.Utc)

Allerdings kann ich nicht sehen, wie man dort GMT-5 spezifiziert ...

Ich weiß auch nicht, wie man eine DateTime in das angegebene Zeichenkettenformat konvertiert.

it Nates Code mache ich Folgendes:

var d = new DateTimeOffset(2016, 3, 29, 12, 20, 35, 93, TimeSpan.FromHours(-3));

FormatIso8601(d)

Dieser Aufruf kehrt jedoch zurück: "2016-03-29T15: 20: 35Z" anstelle von:

"2016-03-29T12:20:35.093-03:00"

was ist was ich eigentlich brauche.

Ich denke, das funktioniert:

        d.ToString("yyyy-MM-ddTHH:mm:ss.fffzzz")

Antworten auf die Frage(6)

Ihre Antwort auf die Frage