Получение другой даты в jsonFormat со стороны клиента на стороне сервера в MVC - PullRequest
0 голосов
/ 25 апреля 2018

Я использую Knockout js на стороне клиента и MVC C # на стороне сервера. Я передаю дату в виде 2019-04-25T03: 27: 00.000Z (UTC + 5:30). на стороне сервера я использую DateTime (используется DateTimeOffset, но с той же проблемы я изменил его на DateTime) и получаю другую дату {25.04.2009 8:57:00 AM} .

Проблема: 1. Если я меняю часовой пояс системы на стороне клиента, то на стороне сервера всегда приходит Дата с добавленным временем +5,30.

  1. Я должен игнорировать метку времени на стороне клиента или на стороне сервера, чтобы я мог получить точную дату, которую клиент отправляет на сервер.

1 Ответ

0 голосов
/ 12 мая 2018

У меня была похожая проблема, так что, вероятно, это происходит:

DateTime имеет свойство «Kind», которое указывает, является ли дата / время локальным, UTC или «неизвестным». Когда метод контроллера имеет параметр DateTime, он устанавливает для него соответствующее значение со значением «Kind» «Local». Другими словами, это то же время, что и переданный клиент, но смещенное на часовой пояс.

Чтобы вернуться в UTC на сервере, используйте метод DateTime ToUniveralTime (). Обратите внимание, что это будет работать правильно, только если значение DateTime Kind имеет значение Local или Utc.

Пример:

public void GetDateRangeReadings(DateTime startDate)
{
    startDate = startDate.ToUniversalTime();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...