【发布时间】:2017-10-18 12:55:13
【问题描述】:
- 使用 4.5
- 根据已构建项目的要求,在服务器的一侧使用 Newtonsoft.Json,在服务器的另一侧使用 DataContractJsonSerializer。
为了解析 DataTime 2017-10-17T17:22:50.658+02:00,我已经尝试了两种不同的配置。其他解决方案与不使用DataContractJsonSerializer有关,但这不是我的解决方案。
我已经尝试过的配置:
DateTime example = DateTime.ParseExact(
"2017-10-17T17:22:50.658+02:00",
"yyyy-MM-ddTHH:mm:ss.fffzzz",
System.Globalization.CultureInfo.InvariantCulture);
-
在设置中不指定任何日期时间格式
private static DataContractJsonSerializerSettings GetSerializerSettings() { var settings = new DataContractJsonSerializerSettings(); settings.UseSimpleDictionaryFormat = true; settings.EmitTypeInformation = System.Runtime.Serialization.EmitTypeInformation.Never; return settings; }
我收到了DateTime '2017-10-18T13:32:42.753+02:00' are not startingwith '\/Date(' and ending with ')\/' as JSON requires 作为错误消息。
-
在设置中指定日期时间格式
private static DataContractJsonSerializerSettings GetSerializerSettings() { var settings = new DataContractJsonSerializerSettings(); settings.DateTimeFormat = System.Runtime.Serialization.DateTimeFormat("yyyy-MM-ddTHH:mm:ss.fffzzz"); settings.UseSimpleDictionaryFormat = true; settings.EmitTypeInformation = System.Runtime.Serialization.EmitTypeInformation.Never; return settings; }
我收到了Can't recognize as valid DateTime 作为错误消息。
有什么建议吗?
【问题讨论】:
-
顺便说一下,你应该使用
CultureInfo.InvariantCulture进行序列化。 -
我改了,还是一样的问题...
标签: c# .net json .net-4.5 datacontractjsonserializer