C#学习教程:使用Json.Net反序列化dd/mm/yyyy格式的日期I'musingNewtonsoftJson.NET):Datacontainsdatesinstringvalueslike09/12/2013格式为dd/mm/yyyy。如果我调用JsonConvert.DeserializeObject(data);日期加载到C#类的日期时间属性中,如mm/dd/yyyy,则日期值为2013年9月12日(而不是2013年12月9日)。是否可以配置JsonConvert以获取正确格式的日期?您可以使用IsoDateTimeConverter并指定DateTimeFormat以获得所需的结果,例如:MyObjectobj=JsonConvert.DeserializeObject(jsonString,newIsoDateTimeConverter{DateTimeFormat="dd/MM/yyyy"});演示:类程序{staticvoidMain(string[]args){stringjson=@"{""Date"":""09/12/2013""}";我的对象obj=JsonConvert.DeserializeObject(json,newIsoDateTimeConverter{DateTimeFormat="dd/MM/yyyy"});DateTimedate=obj.Date;Console.WriteLine("day="+date.Day);Console.WriteLine("月份="+日期.月份);Console.WriteLine("year="+date.Year);}}classMyObject{publicDateTimeDate{get;放;}}输出:day=9month=12year=2013usingNewtonsoft.Json;使用Newtonsoft.Json.Converters;vardateTimeConverter=newIsoDateTimeConverter{DateTimeFormat="dd/MM/yyyy"};myObjectobj=JsonConvert.DeserializeObject(myJSONString,dateTimeConverter);也可以在JsonSerializer中配置:varserializer=newJsonSerializer{DateFormatString="dd/MM/yyyy"};在WebConfig中添加文化:然后在WebApiConfig.cs文件中添加以下代码片段varjsonFormatter=GlobalConfiguration.Configuration.Formatters.JsonFormatter;JsonSerializerSettingsjSettings=newJsonSerializerSettings(){Culture=System.Globalization.CultureInfo.CurrentCulture};jsonFormatter.SerializerSettings=jSettings;culturept-BR使用默认的dd-MM-yyyy,如果你不想将culture放在WebConfig中,你只能根据我的经验为此对象创建实例,最简单和最简单的解决方案是在你的CLR上添加一个字符串属性对象(MyObject)供JSON.Net使用。同样在您的对象上,您只需将DateTime属性作为吸气剂,它将使用您期望的格式解析您使用JSON.Net反序列化的日期时间字符串。这使您可以使用开箱即用的反序列化器并依靠良好的“整形”来完成工作。没有麻烦,没有大惊小怪。以上就是C#学习教程:使用Json.Net反序列化dd/mm/yyyy格式的日期分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——publicclassMyObject{publicstringdtStr{get;放;公共日期时间?dt{获取{日期时间?d=空;if(!string.IsNullOrWhiteSpace(dtStr)&&DateTime.TryParseExact(dtStr,"dd/mm/yyyy",CultureInfo.InvariantCultureDateTimeStyles.None,outd){returnd;}returnd;}}}本文收集自互联网,不代表立场,如涉及侵权,请点击右边联系管理员删除,如需转载请注明出处:
