【问题标题】:Show current date time from CRM in the front end?在前端显示来自 CRM 的当前日期时间?
【发布时间】:2017-08-18 11:37:03
【问题描述】:

我在 CRM 中的答案值下面的逻辑是 01/08/2015 23:00:00,但是在前端将到期日期更改为显示 02/08/2015,它增加了 1 天不知道为什么,我如何从 CRM 中显示相同的日期?下面是我的代码,我现在必须在下面显示 UTC 吗?

List<Answer> answers = Queries.FormAnswersQueries.GetAnswers(correctFormAnswer.Id).FetchEntities<Answer>(connection.OrganizationService);

if (answers != null)
{
    answers = answers
        .GroupBy(c => c.Question.Id)
        .Select(g => g.OrderByDescending(c => c.CreatedOn).First()).ToList();
}

【问题讨论】:

  • 似乎是时区问题。您的数据库中的时间是以 UTC 还是本地时间存储的?如果您进入调试器并检查有关 CreatedOn 属性详细信息的答案列表,您应该会看到假定的日期时间类型。然后在您的 CRM 中检查它假定的日期时间类型并根据您的需要进行修复。

标签: c# date time dynamics-crm crm


【解决方案1】:
String.Format("{0:d/M/yyyy HH:mm:ss}", CreatedOn);

这样做是为了知道您发送的格式正确,看起来您可能会在第二天四舍五入。检查前端的所有转换,如果需要,向下舍入,并使用调试器检查发送的“CreatedOn”的每个值。

【讨论】:

  • 我在哪里可以在代码中添加它,类似于 .Select(g => g.OrderByDescending(c => String.Format("{0:d/M/yyyy HH:mm: ss}", CreatedOn()).First()).ToList(); 但是这表示 CreatedOn 在当前上下文中不存在。
【解决方案2】:

Dynamics CRM 将所有日期时间字段以 UTC 格式存储在数据库中。检索时,它将按原样出现,您必须转换为所需的本地时区。

使用LocalTimeFromUtcTimeRequest 来操作日期时间。

SDK Web 服务在执行创建/更新时可以接受本地日期时间或 UTC 日期时间,但总是在 Retrieve/RetrieveMultiple 上返回 UTC 日期。

Read more

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 2020-01-12
    相关资源
    最近更新 更多