【发布时间】:2014-08-24 19:27:08
【问题描述】:
我目前正在通过以下方式从 CRM 检索日期字符串
Entity dateDeliveryRequiredImage = (Entity)context.PostEntityImages["DeliveryRequired"];
这确实有效,但由于某种原因,它似乎正在检索我通过以下行创建 CSV 文件的时间
dateDeliveryRequiredImage["requestdeliverby"].ToString()
知道从哪里获取时间,因为没有地方可以输入时间(它说是晚上 11 点??)
更重要的是如何摆脱它
谢谢,肖恩
更新
输入所需代码后出现以下错误
if (!timeZoneCode.HasValue)
return;
需要一个可转换为“system.timeanddate”类型的对象
var response = (LocalTimeFromUtcTimeResponse)_serviceProxy.Execute(request);
_serviceProxy 在当前上下文中不存在
我的服务代码如下;
IPluginExecutionContext context = (IPluginExecutionContext)
serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
但是输入服务或上下文什么也没做
终于 新的 QueryExpression(UserSettings.EntityLogicalName)
当前上下文中不存在用户设置
正在更新代码
private DateTime RetrieveLocalTimeFromUTCTime(DateTime utcTime, IOrganizationService service)
{
int? timeZoneCode = RetrieveCurrentUsersSettings(service);
if (!timeZoneCode.HasValue)
throw new Exception("Can't find time zone code");
var request = new LocalTimeFromUtcTimeRequest
{
TimeZoneCode = timeZoneCode.Value,
UtcTime = utcTime.ToUniversalTime()
};
var response = (LocalTimeFromUtcTimeResponse)service.Execute(request);
return response.LocalTime;
//var utcTime = utcTime.ToString("MM/dd/yyyy HH:mm:ss");
//var localDateOnly = response.LocalTime.ToString("dd-MM-yyyy");
}
private int? RetrieveCurrentUsersSettings(IOrganizationService service)
{
var currentUserSettings = service.RetrieveMultiple(
new QueryExpression("usersettings")
{
ColumnSet = new ColumnSet("localeid", "timezonecode"),
Criteria = new FilterExpression
{
Conditions =
{
new ConditionExpression("systemuserid", ConditionOperator.EqualUserId)
}
}
}).Entities[0].ToEntity<Entity>();
return (int?)currentUserSettings.Attributes["timezonecode"];
}
请注意与下面代码的区别在于以下几行;
}).Entities[0].ToEntity<Entity>();
return (int?)currentUserSettings.Attributes["timezonecode"];
【问题讨论】:
-
能理解是什么问题,能不能详细解释一下。如果你能分享插件代码也会很有帮助。
-
当我将 postentityimage 输入到准备输出到 CSV 文件的字符串中时,我得到了日期和时间,但我只需要日期。我的插件代码比较大,不觉得把它都贴在里面,只有上面需要的代码,但是如果你愿意我可以为你更改?
-
好的,我明白了这个问题。给你默认时间。
标签: c# dynamics-crm-2011 dynamics-crm dynamics-crm-2013