Почему DateTime передается в действие CRM на 6 часов меньше, чем я передаю? - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть действие, которое принимает два обязательных поля DateTime, StartDate и EndDate.Из API, когда я вызываю это действие, эти поля передаются следующим образом:

{ "StartDate":"2018-07-01T00:00:00Z", "EndDate":"2019-06-30T00:00:00Z" }

Однако, когда они попадают в действие, я получаю следующий результат прямо при отладке входных параметров:

Start Date - 6/30/2018 6:00 PM | End Date - 6/29/2019 6:00 PM

Таким образом, дата начала перешла с полуночи 01.07.2008 г. на 18.06.2008 г., а дата окончания перешла с полуночи 30.06.2009 г. на 6/ 29/2019 6 вечера.Я гарантировал, что наш API передает правильные данные, и подтвердил, что нет никаких дополнительных рабочих процессов / действий / плагинов, которые могли бы изменить эту дату.

Почему эта дата корректируется на 6 часов?

1 Ответ

0 голосов
/ 13 декабря 2018

Вероятно, это конверсия часового пояса.Когда вы перехватываете дату и время на сервере, она была преобразована в UTC.

Поведение и формат атрибута даты и времени .

Я полагаю, что ваши даты являются локальными для пользователя(по умолчанию), которая будет:

  • Сохраняет значение даты и времени в качестве значения UTC в системе.
  • Операция получения возвращает значение UTC.

Когда вы получаете значение программным способом, вам нужно будет преобразовать его обратно в местный часовой пояс, чтобы получить исходное значение, которое вы ввели, пользовательский интерфейс CRM сделает это.

Выможет переключить ваше поле только на дату или независимо от часового пояса, если такое поведение лучше подходит для вашего варианта использования.Вы можете сделать это программно, если у вас есть много полей для обновления.

...