MS CRM-通过CRM Web服务获取错误的日期

时间:2019-01-22 09:51:55

标签: date datetime window dynamics-crm

当我通过crm Web服务(CRM SDK)检索实体时,在一台服务器上收到一个非常奇怪的行为。 在CRM(网络界面)中,存储的日期(仅日期)为:18.02.2019(UTC + 1) 数据库显示:17.02.2019 23:00:00(UTC)

在这一部分,一切都是正确的。 但是,当我在控制台应用程序(=在CRM服务器上运行)上检索记录时,提到的字段设置为 18.02.2019 23:00:00 (所以在UTC + 1中为19.02.2019)。 在我的电脑上本地运行应用程序,它会返回正确的日期时间 17.02.2019 23:00:00 。 有没有我错过的服务器设置? 服务器上的时区为柏林UTC + 1阿姆斯特丹。

2 个答案:

答案 0 :(得分:0)

这可能与控制台应用中的DateTime的Kind property有关。

您可以使用以下方法解决此问题:
 DateTime.SpecifyKind(myDateTime, DateTimeKind.Utc);

或者简单地:
 myDateTime.ToUniversalTime()

答案 1 :(得分:0)

有许多不同的Behavior and format of the date and time attribute。根据您的情况,我怀疑其中之一会解释您所看到的行为。

  

UserLocal

     
      
  • 检索操作返回UTC值。
  •   
  • 检索格式值会根据UTC的时区和区域设置将UTC转换为用户的当前时区   用户。
  •   
     

仅日期

     
      
  • 对于检索和更新操作,不执行任何时区转换,并且时间值始终为12 AM(00:00:00)。
  •   
  • 检索格式化的值将显示日期值,而无需进行任何时区转换。
  •   
     

TimeZoneIndependent

     
      
  • 对于检索和更新操作,不执行时区转换,而是返回和更新实际的日期和时间值
      不论用户时区如何,都分别在系统中。
  •   
  • 检索格式化的值会根据指定的格式显示日期和时间值(不进行任何时区转换)
      根据当前用户的时区和语言环境设置。
  •