Newtonsoft.Json verwendet standardmäßig IsoDateTimeConverter. Auch wenn Sie nichts angeben, sollten Sie das korrekte Iso-Format erhalten (und für mich funktioniert Ihr Code auch gut, übrigens.).
Lesen Sie dies oder Scotts Blog für weitere Informationen zu den Standardeinstellungen
Sie setzen den Konverter höchstwahrscheinlich wieder woanders hin, vielleicht verwenden Sie einen benutzerdefinierten Konverter mit bestimmten Einstellungen? Oder verwenden Sie eine sehr alte Version von Newtonsoft.Json?
Nur ein kurzer Kommentar zu @ Toolkits Kommentar zur Formatierung.
Der Grund, warum Sie eine Datumszeichenfolge ohne das Z am Ende erhalten, ist, dass die Datetime-Variable, die Sie analysieren, die Art als unspezifiziert haben.
Es ist wahrscheinlich, dass Sie einen Datensatz aus einer Datenbank mit einer DateTime-Eigenschaft analysieren, das Datenbankfeld verliert die Art, die einmal gespeichert wird.
Das ist der Grund, warum json das 'Z' nicht am Ende hinzufügt, es weiß nicht, ob es utc oder lokal ist.
Sie können ein DatetimeOffset anstelle von Datetime verwenden, wenn Sie das Modell ohne zu große Auswirkungen ändern können. Meine Wahl war, einen benutzerdefinierten Parser für Datetime zu schreiben und es zu zwingen, UTC zu sein, wenn nicht spezifiziert wurde.
%Vor%PD: Ich habe nicht genug Punkte, um einen Kommentar zu schreiben, das ist keine Antwort auf das Hauptproblem.
Tags und Links asp.net-web-api c# json.net