将JSON日期/时间转换为C#DateTime

将JSON日期/时间转换为C#DateTime,c#,wcf,json,C#,Wcf,Json,我有一个从WCF Web服务返回的日期时间。此DateTime是具有DataContract属性的CLR对象的一部分。DateTime是一个添加了DataMember属性的属性。一切都正常地返回到我的客户机(Silverlight应用程序) 我的问题是,如何获取DateTime的序列化版本并将其转换为C#DateTime对象 谢谢大家! 从web服务返回的日期时间将采用奇怪的格式,如 \/Date(1297367252340-0500)\/ 日期采用这种奇怪格式的原因是DateTime在WCF

我有一个从WCF Web服务返回的日期时间。此DateTime是具有DataContract属性的CLR对象的一部分。DateTime是一个添加了DataMember属性的属性。一切都正常地返回到我的客户机(Silverlight应用程序)

我的问题是,如何获取DateTime的序列化版本并将其转换为C#DateTime对象


谢谢大家!

从web服务返回的日期时间将采用奇怪的格式,如

\/Date(1297367252340-0500)\/
日期采用这种奇怪格式的原因是DateTime在WCF中是一个原语。不幸的是,JSON中没有通用的序列化日期和时间的标准格式——各种框架使用各种字符串格式

两难的是,WCF需要从本质上理解,一个特定的字符串实际上是一个日期时间,而不仅仅是另一个普通的JSON字符串。因此出现了奇怪的格式。一旦DataContractJsonSerializer遇到以/date开头的日期,它就会开始尝试将其解析为日期

WCF客户端或Silverlight 2+客户端不应存在此问题——它们应使用System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject或System.Web.Script.Serialization.JavaScriptSerializer.Deserialize

如果您使用的是web客户端,则可以包含ASP附带的.js文件。NET AJAX(我相信它被称为MicrosoftAspNetAjax.js或MicrosoftAjax.cs,尽管名称可能已经更改)。它的反序列化函数也将自动解析这些日期


希望有帮助

从web服务返回的日期时间将采用奇怪的格式,如

\/Date(1297367252340-0500)\/
日期采用这种奇怪格式的原因是DateTime在WCF中是一个原语。不幸的是,JSON中没有通用的序列化日期和时间的标准格式——各种框架使用各种字符串格式

两难的是,WCF需要从本质上理解,一个特定的字符串实际上是一个日期时间,而不仅仅是另一个普通的JSON字符串。因此出现了奇怪的格式。一旦DataContractJsonSerializer遇到以/date开头的日期,它就会开始尝试将其解析为日期

WCF客户端或Silverlight 2+客户端不应存在此问题——它们应使用System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject或System.Web.Script.Serialization.JavaScriptSerializer.Deserialize

如果您使用的是web客户端,则可以包含ASP附带的.js文件。NET AJAX(我相信它被称为MicrosoftAspNetAjax.js或MicrosoftAjax.cs,尽管名称可能已经更改)。它的反序列化函数也将自动解析这些日期


希望有帮助

可能的副本不需要自己反序列化。只需将服务引用添加到您的项目中,或将引用添加到接口中,然后启动通道工厂。框架将完成其余的工作。可能的副本不需要自己反序列化。只需将服务引用添加到您的项目中,或将引用添加到接口中,然后启动通道工厂。框架将完成其余工作。