Dynamics CRM - летнее время - PullRequest
       12

Dynamics CRM - летнее время

2 голосов
/ 14 апреля 2011

Переход на летнее время начался 27 марта в Ирландии. С тех пор любые записи, добавленные в Dynamics, имели поля даты, установленные на час после фактического времени их добавления.

Что странно, так это то, что веб-интерфейс правильно возвращает даты, тогда как запросы с использованием сервера SQL и XRM возвращают их неправильно.

Настройки времени на сервере правильны, я установил накопительный пакет 16, есть ли что-нибудь еще, что я могу попробовать?

Спасибо

David

Ответы [ 3 ]

5 голосов
/ 16 апреля 2011

Dynamics CRM сохраняет все значения даты и времени в формате UTC.

Все данные, которые вводятся с помощью веб-интерфейса, автоматически преобразуются в UTC при сохранении и преобразуются обратно в часовой пояс пользователя при чтении.

Если вы используете клиент Outlook Dynamics CRM, используются настройки часового пояса Windows. Если вы используете веб-клиент, он использует настройку часового пояса в ваших личных настройках. Убедитесь, что это правильно.

SDK

SDK всегда использует UTC для дат и не конвертирует их каким-либо образом. Вы несете ответственность за преобразование данных надлежащим образом. Однако класс CrmDateTime содержит некоторые полезные методы и свойства для этого.

Отчеты

Убедитесь, что у вас есть доступ только к FilteredViews (например, FilteredAccount, который является единственным поддерживаемым использованием базы данных). Поля даты автоматически преобразуются в правильный часовой пояс (в соответствии с настройками пользователя). Если вам нужно получить доступ к необработанному значению, оно доступно в виде столбца с постфиксом utc (creationon -> creationonutc). Для форматирования значений даты в соответствии с пользовательскими / системными настройками вы можете получить доступ к этим настройкам также в отчетах См. « Форматирование содержимого »

2 голосов
/ 15 апреля 2011

Также удобны два UDF, которые поставляются с Dynamics CRM:

fn_UTCToLocalTime(@dateTime)
fn_LocalTimeToUTC(@dateTime)

Они переводят в / из UTC с использованием заявленного пользователем системного часового пояса и DST учитывается.

0 голосов
/ 15 апреля 2011

Кажется, что моя проблема решена путем преобразования значений DateTime из UTC в местное время.

(Я надеялся отметить комментарий ckeller как ответ, но, кажется, нет никакого способа сделать это. Большое спасибо ckeller.)

...