如何在从数据库检索的日期时间上设置 UTC?

问题描述 投票:0回答:0

我在 ASP.NET MVC 应用程序 (4.6.1) 上,使用 EF 6.x 从 SQL Server 获取数据。 我在数据库中的

date
字段上,记录中的值为 1952-05-17。

当我使用 EF 进行枚举时,我看到了这个值:

这似乎是正确的,但带有

Kind = Unspecified
。当以这种方式返回给客户时:

public ActionResult MyMethod()
{
    try
    {
        //
        
        return Json(new { data = dataFiltered, recordsFiltered = dataTotal });
    }
    catch (Exception ex)
    {
        throw new Exception(ex.Message);
    }
}

我得到了

/Date(-556250400000)/
,这似乎是本地的,它将呈现为 1952-05-16T22:00:00Z(因此,1952-05-16;落后 1 天)。

所以我试着在

Global.asax.cs
上添加这个:

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);

    JsonConvert.DefaultSettings = () => new JsonSerializerSettings { 
        DateTimeZoneHandling = DateTimeZoneHandling.Utc 
    };
}

但是什么都没有改变,还是

Kind = Unspecified
.

正确的做法是什么?

json .net entity-framework datetime utc
© www.soinside.com 2019 - 2024. All rights reserved.