如何防止DateTime在XML中使用文化信息进行序列化?

时间:2017-08-17 10:33:47

标签: c# datetime dynamics-crm cultureinfo dynamics-crm-2015

我正在尝试从CRM中检索我的数据。但在这样做时,看起来它正在将文化应用于日期时间字段。

我已将日期时间保存在CRM中 - 01/08/2017 12:00 AM。

但是当我在FetchXML的帮助下检索这些数据时,它给了我31/07/2017 06:30 PM

我已将global.asax文件中的culture设置为 -

 protected void Application_BeginRequest()
 {
     CultureInfo info = new CultureInfo(System.Threading.Thread.CurrentThread.CurrentCulture.ToString());
     info.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";
     System.Threading.Thread.CurrentThread.CurrentCulture = info;
 }

和web.config文件 -

 <globalization culture="en-GB" />

现在我从CRM中检索数据 -

foreach (var item in result2.Entities)
{
    model.SightTestDate = Convert.ToDateTime(item["oph_claimreceiveddate"]);
}

它给我这个日期 - 2017年7月31日下午06:30

我错过了什么?

1 个答案:

答案 0 :(得分:3)

使用IOrganizationService接口查询的记录中的公共日期字段将返回为UTC DateTime值。

您需要将这些值转换为适当的时区。