我正在尝试将 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/