ホームページ > バックエンド開発 > C++ > Json.Net で dd/MM/yyyy 日付を正しく逆シリアル化するにはどうすればよいですか?

Json.Net で dd/MM/yyyy 日付を正しく逆シリアル化するにはどうすればよいですか?

DDD
リリース: 2024-12-31 22:40:10
オリジナル
948 人が閲覧しました

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

Json.Net で dd/MM/yyyy 形式の日付を処理する

dd/MM/yyyy 形式の日付を含む JSON データを逆シリアル化するときに、Json.Net が誤ってMM/dd/yyyy 形式で解釈します。これにより、C# クラスの日付値が正しくなくなる可能性があります。

これを修正するために、Json.Net は IsoDateTimeConverter を提供します。 DateTimeFormat プロパティを指定することにより、日付を目的の形式で解析するように Json.Net に指示できます。次に例を示します。

MyObject obj = JsonConvert.DeserializeObject<MyObject>(jsonString, 
                   new IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy" });
ログイン後にコピー

たとえば、この構成では、2013 年 9 月 12 日は、9 月 12 日ではなく、2013 年 12 月 9 日として正しく逆シリアル化されます。 2013.

デモ:

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; }
}
ログイン後にコピー

出力:

day = 9
month = 12
year = 2013
ログイン後にコピー

以上がJson.Net で dd/MM/yyyy 日付を正しく逆シリアル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート