Maison > développement back-end > C++ > Comment puis-je désérialiser correctement les dates jj/MM/aaaa avec Json.Net ?

Comment puis-je désérialiser correctement les dates jj/MM/aaaa avec Json.Net ?

DDD
Libérer: 2024-12-31 22:40:10
original
960 Les gens l'ont consulté

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

Gestion des dates au format jj/MM/aaaa avec Json.Net

Lors de la désérialisation de données JSON contenant des dates au format jj/MM/aaaa, Json.Net peut par inadvertance interprétez-les au format MM/jj/aaaa. Cela peut entraîner des valeurs de date incorrectes dans vos classes C#.

Pour remédier à cela, Json.Net fournit le IsoDateTimeConverter. En spécifiant sa propriété DateTimeFormat, vous pouvez demander à Json.Net d'analyser les dates dans le format souhaité. Voici un exemple :

MyObject obj = JsonConvert.DeserializeObject<MyObject>(jsonString, 
                   new IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy" });
Copier après la connexion

Par exemple, avec cette configuration, le 12/09/2013 sera correctement désérialisé comme le 9 décembre 2013, plutôt que le 12 septembre 2013.

Démonstration :

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; }
}
Copier après la connexion

Sortie :

day = 9
month = 12
year = 2013
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal