Работа с датами в CRM

Особенности работы с датами в Microsoft Dynamics CRM.

  • При запросе данных из системы, дата/время получаются в UTC (об этом говорит свойство Kind класса DateTime, в котором установлено значение DateTimeKind.Utc). Значение в пользовательском часовом поясе хранится в коллекции FormattedValues.
  • Значение отформатированной даты/времени в коллекции FormattedValues хранится только при запросе данных из системы. Т.е. если для Entity задать значение поля типа дата/время, автоматически соответствующего значения в коллекции FormattedValues не появится. Именно поэтому, при доступе в плагине к, заданному пользователем, значению поля типа дата/время, соответствующего значения в коллекции FormattedValues нет. Так же в плагине, при получении поля типа дата/время из Image, в FormattedValues содержится значение поля в пользовательском часовом поясе, но в формате «yyyy-MM-ddTHH:mm:dd».
  • В плагине, установленное пользователем, значение даты/времени получается в UTC, т.е. со смещением с учетом пользовательского часового пояса. Об этом говорит свойство Kind класса DateTime, в котором установлено значение DateTimeKind.Utc. При этом метод ToLocalTime класса DateTime может дать значение даты/времени, отличное от введенного пользователем, т.к. высчитывает локальную дату относительно настроек сервера (от его часового пояса, который может не совпадать с часовым поясом пользователя).
  • При программной записи значения даты/времени в систему учитывается значение свойства Kind класса DateTime: если значение равно DateTimeKind.Utc — дата/время записываются без изменений; если значение равно DateTimeKind.Local — учитывается часовой пояс пользователя и дата/время пересчитываются в UTC.
// Получаем смещение времени по часовому поясу пользователя
var userSettings = service.Retrieve("usersettings", userId, new ColumnSet("timezonebias"));
var timeZoneBias = userSettings.GetAttributeValue<int>("timezonebias");

About the author

Добавить комментарий

Сказать спасибо

Способ платежа:

Подписаться на обновления

Укажите свой e-mail чтобы получать уведомления о новых статьях.

Присоединиться к еще 1 подписчику