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请求报文