В последнее время я попытался получить значение datetime из настраиваемого поля в плагине суффикса entity-фактуры и обнаружил, что он возвращает день до даты, отображаемой в форме CRM. Для incstance, я вошел "7/1/2013" и в моей C# следующий код возвращает "6/30/2013":плагин datetime crm 2011
EntityReference eRef = new EntityReference(localContext.PluginExecutionContext.PrimaryEntityName, localContext.PluginExecutionContext.PrimaryEntityId);
var invoice = localContext.OrganizationService.Retrieve(eRef.LogicalName, eRef.Id, new ColumnSet(true));
string start = ((DateTime)invoice["revg_startdate"]).ToString(); //here I get 6/30/2013
Затем я проверил фактическую DateTime в соответствующей таблице MS SQL , и он хранится ровно за день до этого, «6/30/2013»
Дата, время и часовой пояс абсолютно идентичны на сервере, на моем ПК и в CRM.
Почему CRM хранит и отображает разные даты?
идеальный ответ, +1 –
это слишком просто, чтобы быть настолько очевидным для меня. Спасибо, Svendberg – Gostapko
Убедитесь, что если вы используете вызов '.ToLocalTime()', то знаете, что вы получаете время на сервере, на котором запущен плагин. Не время пользователя. Если вы хотите преобразовать время UTC во время пользователя, см. Этот ответ: http://stackoverflow.com/questions/11364982/server-side-fetchxml-returns-different-results/11367508#11367508 – Daryl