gpt4 book ai didi

c# - 使用 Json.Net 以 dd/MM/yyyy 格式反序列化日期

转载 作者:IT老高 更新时间:2023-10-28 12:47:56 26 4
gpt4 key购买 nike

我正在尝试将 JSON 数据中的对象反序列化为 C# 类(我使用的是 Newtonsoft Json.NET)。数据包含日期为字符串值,如 09/12/2013其中格式为 dd/MM/yyyy .

如果我调用 JsonConvert.DeserializeObject<MyObject>(data) ,日期加载到 DateTime带有 MM/dd/yyyy 的 C# 类的属性格式,这会导致日期值为 12 September 2013 (而不是 9 December 2013 )。

是否可以配置JsonConvert获取正确格式的日期?

最佳答案

您可以使用 IsoDateTimeConverter 并指定 DateTimeFormat 来获得您想要的结果,例如:

MyObject obj = JsonConvert.DeserializeObject<MyObject>(jsonString, 
new IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy" });

演示:

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

关于c# - 使用 Json.Net 以 dd/MM/yyyy 格式反序列化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21256132/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com