CRM 2013 Entity.GetAttributeValue <t> datetime to string </t>

时间:2014-09-19 12:59:58

标签: dynamics-crm crm dynamics-crm-4 dynamics-crm-2013

将日期记录添加到crm 2013时,它会从我的记录中删除2小时。 这是crm作为时区校正的预期行为。

使用organisationService RetrieveMultiple api调用检索实体的下一个预期行为会在没有额外2小时的情况下返回相同的记录。

现在奇怪的魔法开始了,当使用Entity.GetAttributeValue(fieldname)时,它应该给我带有额外2小时的日期时间,因为它是来自crm的设置。但这就是我得到的:

Create record: '01/10/2014'
CRM stores: '30/09/2014 22:00:00'
Retreive entity results to: '30/09/2014 22:00:00'
Use Entity.GetAttributeValue<DateTime>(fieldname) results to: '30/09/2014 00:00:00'

使用该方法后为什么不说01/10/2014?

1 个答案:

答案 0 :(得分:1)

GetAttributeValue只是一个帮手,如果CRM中的DateTime字段值为nullGetAttributeValue会返回DateTime.MinValue

您需要始终使用.ToLocalTime()来获取本地DateTime值而不是UTC值。