将日期记录添加到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?
答案 0 :(得分:1)
GetAttributeValue
只是一个帮手,如果CRM中的DateTime字段值为null
,GetAttributeValue
会返回DateTime.MinValue
。
您需要始终使用.ToLocalTime()
来获取本地DateTime值而不是UTC值。