JsonResult将日期和时间编码为UTC ...如何避免这种情况?

时间:2019-05-07 21:25:11

标签: json asp.net-mvc datetime json.net gmt

我有一个通过Ajax调用的MVC控制器。该控制器对返回日期(以00:00:00作为时间值)的数据库进行查询

在一种情况下,存储在SQL Server数据库中的记录的值为“ 2019-05-01 00:00:00.000”。

我正在运行此实体框架说明:

canvas context

GridRowObject就是这样:

        var periodos = db.Periodo.Where(p => p.PeriodoEliminadoEn == null && p.ClienteId == this.ClienteID);
        var listado = periodos.Select(p => new
        {
            PeriodoId = p.PeriodoId,
            PeriodoFecha = p.PeriodoFecha,
            PeriodoCreadoEn = p.PeriodoCreadoEn,
            PeriodoActualizadoEn = p.PeriodoActualizadoEn,
            PeriodoActivo = p.PeriodoActivo
        });

        GridRowObject grid = new GridRowObject(totalPages, currentPage, totalRecords, listado.ToList());
        return Json(grid, JsonRequestBehavior.AllowGet);

制作Ajax时,正如我在Chrome开发工具中看到的那样,“ PeriodoFecha”的值是“ / Date(1556679600000)/”。

我使用此页面https://www.epochconverter.com/来查看真实的日期值,并且看到的是:格林尼治标准时间2019年5月1日和当地时间2019年4月30日23:00:00。 / p>

我开发的页面显示了本地日期,这显然是错误的。

问题是由于我国的时区问题。根据政府的说法,时区在其他年份更改之前已更改。服务器不知道该更改。因此,对于服务器,时区仍为GMT-3,但是实时区为GMT-4。因此,所有访客的PC都将日期显示为4月30日,这显然是错误的。

我如何摆脱时区?我希望,如果服务器使用其Json序列化器序列化日期和时间,则日期和时间应按原样发送,而无需先转换为GMT。

客户端计算机在使用“ moment” jquery插件将json日期转换回日期和时间时,无需考虑时区即可进行转换。

致谢

Jaime

0 个答案:

没有答案