反序列化包含 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中文网其他相关文章!