Im Standard wird das Datum ISO-konform serialisiert (z.B. dueDate=2019-02-21T00:00:00). In manchen Fällen möchte man das Format ändern, oder aber beispielsweise nur das Datum übertragen. Hierfür bietet JSON.NET (welches bis .NET Core kleiner 3.0 die eingesetzte JSON-Library ist) eine sehr einfache Lösung:

public class JsonDateConverter : IsoDateTimeConverter
{
    public JsonDateConverter()
    {
        DateTimeFormat = "yyyy-MM-dd";
    }
}

Nun muss der Converter noch für die gewünschte Eigenschaft konfiguriert werden:

[JsonConverter(typeof(JsonDateConverter))]
public DateTime? DueDate { get; set; }

Ab nun wird das Datum im angegebenen Format serialisiert.

Ab .NET Core 3.0 wird JSON.NET nicht mehr als führende Library eingesetzt, die Integration bleibt jedoch als zusätzliches Package erhalten und JSON.NET somit weiterhin offiziell supported.

Über den Autor

Norbert Eder

Ich bin ein leidenschaftlicher Softwareentwickler und Fotograf. Mein Wissen und meine Gedanken teile ich nicht nur hier im Blog, sondern auch in Fachartikeln und Büchern.