如何使用signalR转换ASP.NETWebAPI的日期格式?

如何使用signalR转换ASP.NETWebAPI的日期格式?,signalr,asp.net-web-api,Signalr,Asp.net Web Api,我已经实现了asp.net web api以及Signal,以便将数据推送到客户端 有效负载包括通过Asp.NETWebAPI中的信号器将日期时间值推送到浏览器 问题是当数据在浏览器上接收时,我得到的是iso格式的日期 i、 e.2012-12-04T19:30:18但我需要microsoftdate格式的数据,即“\date(…)” 为此,我在asp.net web api的global.asax中的应用程序启动事件中尝试了以下操作: var json =config.Formatte

我已经实现了asp.net web api以及Signal,以便将数据推送到客户端

有效负载包括通过Asp.NETWebAPI中的信号器将日期时间值推送到浏览器

问题是当数据在浏览器上接收时,我得到的是iso格式的日期 i、 e.2012-12-04T19:30:18但我需要microsoftdate格式的数据,即“\date(…)”

为此,我在asp.net web api的global.asax中的应用程序启动事件中尝试了以下操作:

    var json =config.Formatters.JsonFormatter;
        json.SerializerSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;
但日期仍然是“2012-12-04T19:30:18”


有什么想法吗?

我没有完全了解您遇到的问题,但我假设您正在尝试将当前日期时间从服务器传递到客户端并读取它

如果是这样,您可以通过以下方式发送/解析(无需任何序列化更改):


这是读取日期时间的JavaScript方法。

我没有完全了解您遇到的问题,但我假设您正在尝试将当前日期时间从服务器传递到客户端并读取它

如果是这样,您可以通过以下方式发送/解析(无需任何序列化更改):


这是读取日期时间的JavaScript方式。

从SignalR 1.0开始,您可以在app start上使用如下自定义设置注册自己的JsonNetSerializer:

using System;
using System.Web;
using Microsoft.AspNet.SignalR;
using Newtonsoft.Json;

namespace MyApp
{
    public class Global : HttpApplication
    {
        protected void Application_Start(object sender, EventArgs e)
        {
            var settings = new JsonSerializerSettings();
            settings.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat;
            var serializer = new JsonNetSerializer(settings);

            GlobalHost.DependencyResolver.Register(typeof(IJsonSerializer), () => serializer);
        }
    }
}

从SignalR 1.0开始,您可以使用如下自定义设置在app start上注册自己的JsonNetSerializer:

using System;
using System.Web;
using Microsoft.AspNet.SignalR;
using Newtonsoft.Json;

namespace MyApp
{
    public class Global : HttpApplication
    {
        protected void Application_Start(object sender, EventArgs e)
        {
            var settings = new JsonSerializerSettings();
            settings.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat;
            var serializer = new JsonNetSerializer(settings);

            GlobalHost.DependencyResolver.Register(typeof(IJsonSerializer), () => serializer);
        }
    }
}

谢谢你,哈尔特,这正是我想要的。上面的实现正在工作。谢谢你。这正是我想要的。上述实现正在工作。