У меня есть приложение MVC, которое отправляет значение даты с сервера в США в формате JSON, и оно отображается на компьютере в Чили.
На стороне сервера есть это действие в контроллере:
public async Task<ActionResult> GetFacturas(Models.DataTableAjaxPostModel model)
{
// Some other code in between
// ----
return Json(fecha); // fecha has the value of 2019-04-16 00:00:00
}
Используя инструмент разработки Chrome, я вижу, что дата получена в объекте JSON как 1555383600000.
Используя сайт https://www.epochconverter.com/ я перевел эту дату в удобочитаемый для человека формат и увидел, что это:
GMT: Tuesday, 16 April 2019 3:00:00
Your time zone: Monday, 15 April 2019 23:00:00 GMT-04:00
Даже когда контроллер MVC получил дату как 2019-04-16 00:00:00, кажется, что когда Json его сериализовал, он был преобразован в GMT с использованием -3 часового пояса, поэтому, наконец, дата GMT была получена клиентским компьютером , который, в свою очередь, преобразовал дату обратно в местное время, применяя операцию -4.
Операционная система настроена как часовой пояс -4, а приложение MVC настроено следующим образом в файле web.config:
<globalization culture="es-CL" uiCulture="es-CL" />
Как мне избежать этой проблемы?
EDIT:
Переменная «fecha» - это объект DateTime, возвращаемый из базы данных, таким образом:
var fecha = db.Entity.Select(f => f.DatetimeField).FirstOrDefault();
Конечно, я упростил запрос, но дело в том, что "fecha" перед возвратом функции является объектом DateTime, значение которого равно 2019-04-16 00: 00: 00.
Привет
Jaime