Heim > Backend-Entwicklung > C++ > Wie kann ich TT/MM/JJJJ-Daten mit Json.Net korrekt deserialisieren?

Wie kann ich TT/MM/JJJJ-Daten mit Json.Net korrekt deserialisieren?

DDD
Freigeben: 2024-12-31 22:40:10
Original
948 Leute haben es durchsucht

How Can I Correctly Deserialize dd/MM/yyyy Dates with Json.Net?

Umgang mit Datumsangaben im TT/MM/JJJJ-Format mit Json.Net

Beim Deserialisieren von JSON-Daten, die Datumsangaben enthalten, die als TT/MM/JJJJ formatiert sind, kann es sein, dass Json.Net versehentlich Daten im Format TT/MM/JJJJ verarbeitet Interpretieren Sie sie im Format MM/TT/JJJJ. Dies kann zu falschen Datumswerten in Ihren C#-Klassen führen.

Um dies zu beheben, stellt Json.Net den IsoDateTimeConverter bereit. Durch Angabe der DateTimeFormat-Eigenschaft können Sie Json.Net anweisen, Daten im gewünschten Format zu analysieren. Hier ist ein Beispiel:

MyObject obj = JsonConvert.DeserializeObject<MyObject>(jsonString, 
                   new IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy" });
Nach dem Login kopieren

Mit dieser Konfiguration wird beispielsweise der 12.09.2013 korrekt als 9. Dezember 2013 und nicht als 12. September deserialisiert 2013.

Demonstration:

class Program
{
    static void Main(string[] args)
    {
        string json = @"{ ""Date"" : ""09/12/2013"" }";

        MyObject obj = JsonConvert.DeserializeObject<MyObject>(json, 
            new IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy" });

        DateTime date = obj.Date;
        Console.WriteLine("day = " + date.Day);
        Console.WriteLine("month = " + date.Month);
        Console.WriteLine("year = " + date.Year);
    }
}

class MyObject
{
    public DateTime Date { get; set; }
}
Nach dem Login kopieren

Ausgabe:

day = 9
month = 12
year = 2013
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich TT/MM/JJJJ-Daten mit Json.Net korrekt deserialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage