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
930 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!

source:php.cn
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