如何转换WCF样式的格式化日期字符串,即/日期(1342210377000);到c#DateTime?
ajax请求以WCF格式发送日期值?它是一个javascript日期对象,转换为WCF可以使用DataContractSerializer反序列化的字符串如何转换WCF样式的格式化日期字符串,即/日期(1342210377000);到c#DateTime?,c#,json,wcf,datetime,datacontractserializer,C#,Json,Wcf,Datetime,Datacontractserializer,ajax请求以WCF格式发送日期值?它是一个javascript日期对象,转换为WCF可以使用DataContractSerializer反序列化的字符串 "/Date(1342210377000)/" 客户端以前将此数据发送到WCF服务,但现在将此数据发送到asp.net mvc控制器。有人知道我如何将该字符串反序列化为c#DateTime,而无需执行大量string.replace操作吗?我是否可以利用现有的.NET序列化程序?我研究了使用DataContractSerializer,但它
"/Date(1342210377000)/"
客户端以前将此数据发送到WCF服务,但现在将此数据发送到asp.net mvc控制器。有人知道我如何将该字符串反序列化为c#DateTime,而无需执行大量string.replace操作吗?我是否可以利用现有的.NET序列化程序?我研究了使用DataContractSerializer,但它的readobject方法采用流或xmlreader。我无法理解如何将modelbindercontext.valueprovider值转换为序列化程序可以使用的流对象。如果有人知道我如何正确转换字符串,我很想学习如何转换。感谢您提供的任何提示、技巧、代码、链接等
DateTime.ToUniversalTime()
例如,这将为您提供“YYYY-MM-DD hh:MM:ss”的输出格式,然后使用该格式,让您的C#代码按照您的意愿执行格式化部分。您可以使用
DataContractJsonSerializer
将其转换为日期时间
值:
var str = "\"/Date(1342210377000)/\"";
var dcjs = new DataContractJsonSerializer(typeof(DateTime));
var ms = new MemoryStream(Encoding.UTF8.GetBytes(str));
var dt = dcjs.ReadObject(ms);
Console.WriteLine(dt);
这不是一个C#解决方案,而是一个总体思路:使用类似于
\d{1,}
的regexp来获取数值,除以1000
来获取UNIX时间戳,并使用它来获取所需的DateTime
。这篇文章对您有帮助吗?我不认为这是你必须反序列化的唯一部分。如果您显示从客户端获得的整个字符串,您可以得到更好的答案。-1 OP有一个字符串(“/Date(1342210377000)/”
)不是日期时间,并询问如何将其转换为日期时间,memorystream片段正是我要找的。这很好用。谢谢