Dynamics 365/CRM 对夏令时的支持

Dynamics 365/CRM 支持夏令时实时调整,在某些国家或地区的某月或某日会调整冬夏令时,例如时区UTC -4 大西洋加拿大时间,当地时间是2018年8月11日 07:00 ,那么经过夏令时调整后的时间就是2018年8月11日 08:00

Dynamics 365/CRM 中的日期类型字段自动支持夏令时调整,

若直接取其中的字段值,则在客户端会显示调整之后的时间;

如果有自定义字段为文本类型,存储的是UTC时间,那么我们可以使用系统提供的消息来执行转换,直接获得经过调整之后的当地时间。

SDK提供了一个消息,支持夏令时调整 LocalTimeFromUtcTimeRequest

使用示例如下:

private void RetrieveLocalTimeFromUTCTime(DateTime utcTime)
{
    if (!_timeZoneCode.HasValue)
        return;                

    var request = new LocalTimeFromUtcTimeRequest
    {
        TimeZoneCode = _timeZoneCode.Value,
        UtcTime = utcTime.ToUniversalTime()
    };

    var response = (LocalTimeFromUtcTimeResponse)_serviceProxy.Execute(request);

    Console.WriteLine(String.Concat("Calling LocalTimeFromUtcTimeRequest.  UTC time: ",
        utcTime.ToString("MM/dd/yyyy HH:mm:ss"), ". Local time: ",
        response.LocalTime.ToString("MM/dd/yyyy HH:mm:ss")));
}

当然,如果前端需要调用的话,目前没有找到对应的API,但是我们可以转换为SOAP调用

可以使用SOAPLogger来获得前端httprequest的POST请求报文

猜你喜欢

转载自www.cnblogs.com/tcli/p/9458480.html