CRM2011,插件中的日期和夏令时,只是因为我没有找到任何文件来证明自己是正确的。我的服务器目前是夏令时,CRMUI也显示1小时,然后数据存储在db中。没关系。当我使用插件计算和存储日期时,在我的插件更新操作完成后,CRM平台从我保存的数据中扣除1小时。我读到,当我们通过SDK相关的日期时间进行一些操作时,CRM按日期时间存储日期时间。到夏令时时,平台也会涉及扣1小时?作为解决方案,我已经注释掉我的行以扣除1小时并让CRM现在执行。我是否理解我所理解的,或者是否有人可以提供任何值得赞赏的文档URL。每当您使用SDK时,都会检索DateTime并将其存储为UTC。CRM网络平台将UTC时间转换为用户时间。您不应仅将UTC用于任何转换。假设您的本地时间是UTC-1(使用DST,因为UTC不遵守DST)。所以如果UTC是14:00,那么你的当地时间就是13:00。假设您的插件将使用明天的当前时间填充实体的日期属性。如果您的代码如下所示:entity.new_SomeDate=DateTime.Now.AddDays(1);服务.更新(实体);假设DateTime.Now是13:00,它将在数据库中存储13:00(就像它与UTC一样)。然后,当您从CRM网站查看时间值时,由于您是UTC-1,即使您想要13:00,它也会显示12:00。现在,如果您的代码如下所示:entity.new_SomeDate=DateTime.UtcNow.AddDays(1);服务.更新(实体);假设DateTime.Now是13:00,它会在数据库中存储14:00,因为DateTime.UtcNow是14:00。然后,当您从CRM网站查看时间值时,由于您使用的是UTC-1,因此它将显示13:00,因为它将采用UTC值-1。现在,如果您的代码如下所示:entity.new_SomeDate=entity.new_UserEnteredDateFromCrm.AddDays(1);服务.更新(实体);new_UserEnteredDateFromCrm已从用户的时区转换为UTC,它将按预期工作。这使得很难将DateTimes存储为您喜欢的日期(那是谁的生日?),您可能需要更深入地考虑它。我自己想出来了。该日期中包含组件,用于探索它的日期时间。它可以是Utc、本地或未指定。当您通过代码将任何日期传递给CRM属性时。确保日期时间类型为Utc,否则CRM服务内部操作会将其转换为Utc。就我而言,我一直坚持这一点,因为当我从CRM读取日期时,我必须在该日期开始办公室。例如,我需要将03/02/201412:00设为03/02/20148:30,以便传入日期与办公室开始时间一致。我做这样的操作,DateTimeInDate=Case.CreatedOn.Value;DateTimeDt=newDateTime(InDate.Year,InDate.Month,InDate.Day,8,30,0)在Utc时间中使用InDate,我正在创建新的Date对象,因此它丢失了从Utc到本地的DateTime类型(在DST中它表示从1小时开始)为避免这种情况,请始终将DateTime类型设置为与新对象的日期相同。例如,可以改为进行上述操作。DateTimeInDate=Case.CreatedOn.Value;DateTimeDt=newDateTime(InDate.Year,InDate.Month,InDate.Day,8,30,0)Dt=DateTime.SpecifyKind(Dt,DateTimeKind.Utc)希望有帮助。以上就是C#学习教程:CRM2011,插件中的日期和夏令时分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
