MS CRM - неправильное свидание через веб-сервис CRM - PullRequest
0 голосов
/ 22 января 2019

Когда я получаю сущность через веб-сервис crm (CRM SDK), я получаю на одном сервере действительно странное поведение.В CRM (веб-интерфейс) сохраненная дата (dateonly): 18.02.2019 (UTC + 1). База данных показывает: 17.02.2019 23:00:00 (UTC)

. В этой части все верно,Но когда я получаю запись в консольном приложении (= работающем на сервере CRM), указанное поле устанавливается на 18.02.2019 23: 00: 00 (т. Е. 19.02.2019 в UTC + 1).Запустив приложение локально (на моем компьютере), оно возвращает правильную дату и время 17.02.2019 23: 00: 00 .Есть ли настройка сервера или так, что я пропустил?Часовой пояс на сервере: UTC + 1 Амстердам, Берлин.

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Существует несколько различных Поведение и формат атрибута даты и времени .Я подозреваю, что в зависимости от вашей ситуации один из них объяснит поведение, которое вы видите.

UserLocal

  • Операция получения возвращает значение UTC.
  • Извлечение отформатированного значения преобразуется из UTC в текущий часовой пояс пользователя на основе часового пояса и языкового стандарта пользователя.

DateOnly

  • Для операций получения и обновленияпреобразование часового пояса не выполняется, а значение времени всегда равно 12:00 (00:00:00).
  • При получении отформатированного значения отображается значение даты без преобразования часового пояса.

TimeZoneIndependent

  • Для операций поиска и обновления преобразование часового пояса не выполняется, а фактические значения даты и времени возвращаются и обновляются
    соответственно в системе независимо от часового пояса пользователя..
  • При получении отформатированного значения отображаются значение даты и времени (без преобразования часового пояса) в зависимости от формата.как указано
    в соответствии с часовым поясом и настройкой текущего пользователя.
0 голосов
/ 22 января 2019

Это может иметь какое-то отношение к свойству DateTime Kind в консольном приложении.

Вы можете решить эту проблему с помощью:
DateTime.SpecifyKind(myDateTime, DateTimeKind.Utc);

Или просто:
myDateTime.ToUniversalTime()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...