反序列化包含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" });
例如,使用此配置,09/12/2013 將正確反序列化為 2013 年 12 月 9 日,而不是 9 月 12日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中文網其他相關文章!