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 サイトの他の関連記事を参照してください。