Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何转换WCF样式的格式化日期字符串,即/日期(1342210377000);到c#DateTime?_C#_Json_Wcf_Datetime_Datacontractserializer - Fatal编程技术网

如何转换WCF样式的格式化日期字符串,即/日期(1342210377000);到c#DateTime?

如何转换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,但它

ajax请求以WCF格式发送日期值?它是一个javascript日期对象,转换为WCF可以使用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片段正是我要找的。这很好用。谢谢