C# 无法使用UTC和非UTC格式的日期时间反序列化JSON
我正在从外部API读取JSON。由于某些原因,datetime值的格式不同,我无法使用Newtonsoft.Json将其自动反序列化到我的对象中 例如,假设以下是我的JSON,两个datetime值中唯一的差异是第一个值以“Z”结尾,第二个值不以“Z”结尾: 字符串json={\DateTime1\:\20131101T000000Z\,\DateTime2\:\20131101T000000\} 然后我需要将2个datetime字段解析为包含DateTime1和DateTime2属性的对象,如下所示: 福班 { 公共日期时间日期时间1{get;set;} 公共日期时间日期时间2{get;set;} } 我的反序列化代码如下所示: var format=yyyymmddthhmmsz;//您的日期时间格式 var dateTimeConverter=new IsoDateTimeConverter{DateTimeFormat=format}; JsonSerializerSettings serializerSettings=新的JsonSerializerSettings; serializerSettings.DateTimeZoneHandling=DateTimeZoneHandling.Local; serializerSettings.DateFormatHandling=DateFormatHandling.IsoDateFormat; serializerSettings.DateParseHandling=DateParseHandling.DateTimeOffset; 字符串json={\DateTime1\:\20131101T000000Z\,\DateTime2\:\20131101T000000\}; 尝试 { var serializer=JsonSerializer.CreateserializerSettings; var o3=JsonConvert.DeserializeObjectjson,dateTimeConverter; } 特例 { var x=ex.Message.ToString; } 回来 运行上面的代码可以让我: 字符串未被识别为有效的日期时间C# 无法使用UTC和非UTC格式的日期时间反序列化JSON,c#,json,datetime,json.net,C#,Json,Datetime,Json.net,我正在从外部API读取JSON。由于某些原因,datetime值的格式不同,我无法使用Newtonsoft.Json将其自动反序列化到我的对象中 例如,假设以下是我的JSON,两个datetime值中唯一的差异是第一个值以“Z”结尾,第二个值不以“Z”结尾: 字符串json={\DateTime1\:\20131101T000000Z\,\DateTime2\:\20131101T000000\} 然后我需要将2个datetime字段解析为包含DateTime1和DateTime2属性的对象,如
任何帮助都将不胜感激 您的IsoDateTimeConverter的日期时间格式字符串看起来不正确,请尝试根据以下内容更新它 var dateTimeConverter=new IsoDateTimeConverter{DateTimeFormat=yyyymmddthhmmsk}; 根据,,
K格式说明符用于时区信息,没有Z格式说明符感谢alot Pavel。我想是这样的,但我不知道如何用UTC格式表示“Z”。你的回答非常有效!