C# Json.NET对象日期序列化格式

C# Json.NET对象日期序列化格式,c#,.net,json.net,C#,.net,Json.net,在使用Newtonsoft.Json ToObject将Json转换为自定义对象时,我尝试设置自定义日期格式,但尝试了不同的方法,根本无法让它更改日期格式 public class CustomObject { public string DateRecordedString { get; set; } } static void Main(string[] args) { string jsonR

在使用Newtonsoft.Json ToObject将Json转换为自定义对象时,我尝试设置自定义日期格式,但尝试了不同的方法,根本无法让它更改日期格式

public class CustomObject
        {
            public string DateRecordedString { get; set; }
        }

static void Main(string[] args)
        {
            string jsonResult = "[{\"daterecordedstring\":\"2016-11-21T08:24:42\"}]";
            JToken jtokenResult = JToken.Parse(jsonResult);

            var objectResult1 = jtokenResult.ToObject<CustomObject[]>();
            Console.WriteLine(objectResult1.First().DateRecordedString); // -> 11/21/2016 08:24:42

            var objectResult2 = jtokenResult.ToObject<CustomObject[]>(new JsonSerializer { DateParseHandling = DateParseHandling.None });
            Console.WriteLine(objectResult2.First().DateRecordedString); // -> 11/21/2016 08:24:42

            var objectResult3 = jtokenResult.ToObject<CustomObject[]>(new JsonSerializer { DateFormatString = "yyyy-M-d" });
            Console.WriteLine(objectResult3.First().DateRecordedString); // -> 11/21/2016 08:24:42

        }
公共类CustomObject
{
公共字符串DateRecordedString{get;set;}
}
静态void Main(字符串[]参数)
{
字符串jsonResult=“[{\”daterecordedstring\”:\“2016-11-21T08:24:42\””;
JToken jtokenResult=JToken.Parse(jsonResult);
var objectResult1=jtokenResult.ToObject();
Console.WriteLine(objectResult1.First().DateRecordedString);//->11/21/2016 08:24:42
var objectResult2=jtokenResult.ToObject(新的JsonSerializer{DateParseHandling=DateParseHandling.None});
Console.WriteLine(objectResult2.First().DateRecordedString);//->11/21/2016 08:24:42
var objectResult3=jtokenResult.ToObject(新的JsonSerializer{DateFormatString=“yyyy-M-d”});
Console.WriteLine(objectResult3.First().DateRecordedString);//->11/21/2016 08:24:42
}

如何让ToObject以我想要的格式返回日期(或保持不变)?

看起来像是
JToken。Parse
在您之前进行一些类型转换

如中所述


感谢用户5090812JToken的ToObject不尊重DateParseHandling=DateParseHandling。无

代码如下: 项目=>JToken类型

Dictionary<string, string> data = item.ToObject<Dictionary<string, string>>(new JsonSerializer { DateParseHandling=DateParseHandling.None});

现在,如果您对每个JToken循环使用这个JArray并使用JToken.ToObject,您将不会得到格式化的datetime。

您读过这个吗?是的,谢谢,但它没有帮助-无论出于什么原因,我上面的代码总是生成m/d/y类型的格式。什么“文化”你的环境在新西兰吗?m/d/y不是我的约会格式你是对的,它比我想象的更早进行转换。
Dictionary<string, string> data = item.ToObject<Dictionary<string, string>>(new JsonSerializer { DateParseHandling=DateParseHandling.None});
Newtonsoft.Json.Linq.JArray arr = JsonConvert.DeserializeObject(data, new JsonSerializerSettings {  DateParseHandling=DateParseHandling.None}) as Newtonsoft.Json.Linq.JArray;