3

ajax 请求以 WCF 格式发送日期值?它是一个转换为字符串的 javascript 日期对象,WCF 可以使用 DataContractSerializer 反序列化。

"/Date(1342210377000)/"

客户端曾经将此数据发送到 WCF 服务,但现在将其发送到 asp.net mvc 控制器。有谁知道我如何在不执行 string.replace 操作的情况下将该字符串反序列化为 ac# DateTime?我可以利用现有的 .NET 序列化程序吗?我查看了使用 DataContractSerializer,但它的 readobject 方法需要一个流或 xmlreader。我无法弄清楚如何将 modelbindercontext.valueprovider 值转换为序列化程序可以使用的流对象。如果有人知道我如何正确转换该字符串,我很想学习如何。感谢您提供任何提示、技巧、代码、链接等...

4

2 回答 2

5

您可以使用 将DataContractJsonSerializer其转换为DateTime值:

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);
于 2012-07-13T21:10:21.517 回答
-3
DateTime.ToUniversalTime()

例如,这会为您提供“YYYY-MM-DD hh:mm:ss”的输出格式,而不是让您的 C# 代码执行您想要的格式化部分。

于 2012-07-13T21:08:47.647 回答