WebApi return 错误的日期时间

WebApi return wrong datetime

我正在向 Microsoft CRM 发送简单查询 通过 HttpClient,但结果我可以看到日期时间字段的值错误。 在 CRM 中,这个字段有 GMT +02:00 时区,而我在 UTC +1。 现在,假设我在 CRM 日期时间值 2.2.2017 3:30PM,当我 运行 HttpClient 通过网络查询 api,然后我得到值 2.2.2017 11:30AM.所以即使我把它转换成本地时间值也会出错。

是否有相同的 HttpClient 设置,我哪里出错了?

您可能处于不同的时区,记录可能是由具有不同时区设置的用户创建的。因此 CRM 会将其存储在 Offset 中。然后在使用 SDK 查询返回时,您必须操作所需的结果。

您真的必须 understand CRM 日期时间的工作原理。

Date Time stored in DB: UTC
Date Time shown in CRM UI: Local Time Zone
(Even for Date Only format fields, time zone conversion is applied)

Data Time fields retrieved through API: UTC
Date Time retrieve through filtered views: Local Time Zone

MSDN 可以帮助您验证您的 CRM 自定义和设置,然后得出您遇到的问题的结论。