2013-07-30 6 views
0

Récemment, j'ai essayé d'obtenir la valeur datetime du champ personnalisé dans l'entité Facture Throuhg plugin et a constaté qu'il retourne un jour avant la date affichée dans le formulaire CRM. Pour incstance, je suis entré dans "01/07/2013" et dans mon C# le code suivant retourne "30/06/2013":datetime plugin 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 

Alors j'ai vérifié la datetime réelle dans le tableau pertinent MS SQL , et il conserve exactement un jour avant, "30/06/2013"

La date, l'heure et les fuseaux horaires sont absolument identiques sur le serveur, mon PC et dans le CRM.

Pourquoi CRM conserve et affiche différentes dates?

Répondre

2

Dynamics CRM stocke toutes les dates de la base de données en heure UTC. L'interface utilisateur convertit cette fois en fonction du fuseau horaire des utilisateurs à partir des paramètres utilisateur. La raison en est que vous pouvez avoir des utilisateurs dans différents fuseaux horaires travaillant sur la même organisation CRM, et CRM doit stocker les dates dans un format commun pour pouvoir afficher la date et l'heure correctes pour tous les utilisateurs.

Si vous voulez l'heure locale dans un plugin vous pouvez utiliser .ToLocalTime()

string start = ((DateTime)invoice["revg_startdate"]).ToLocalTime().ToString(); 
+0

réponse parfaite, +1 –

+0

il est trop facile d'être si évident pour moi. Merci, Svendberg – Gostapko

+2

Assurez-vous que si vous utilisez l'appel '.ToLocalTime()', vous savez que vous obtenez l'heure du serveur qui exécute le plugin. Pas le temps de l'utilisateur. Si vous voulez convertir l'heure UTC dans l'heure de l'utilisateur, voir cette réponse: http://stackoverflow.com/questions/11364982/server-side-fetchxml-returns-different-results/11367508#11367508 – Daryl