从客户端对象的Sharepoint列表中检索时转换Date字段

时间:2014-05-05 11:19:22

标签: com sharepoint-list client-object-model

我正在创建一个窗口表单,用于从sharepoint客户端对象模型加载列表项。

我遇到了日期字段的问题,该字段给出了+1天或-1天,即如果我在2014年5月5日输入的日期是2014年5月6日或有时是5/4/2014。

_query.ViewXml = "<View><Query><Where>" +
               "<And><Geq><FieldRef Name='Effort_x0020_Date'/><Value IncludeTimeValue='FALSE' Type='DateTime'>" + conStartDate + "</Value></Geq>" +
                    "<And><Leq><FieldRef Name='Effort_x0020_Date'/><Value IncludeTimeValue='FALSE' Type='DateTime'>" + conEndDate + "</Value></Leq>" +
                    "<Eq><FieldRef Name='Author' LookupId=’TRUE’/><Value Type=’Text’>" + UserID + "</Value></Eq></And></And></Where>" +
                    "<GroupBy  Collapse='TRUE'><FieldRef Name='WBS_x0020_Code'/></GroupBy></Query><RowLimit>25</RowLimit></View>";
SP.ListItemCollection _listitems = list.GetItems(_query);
clientcontext.ExecuteQuery();

执行此操作后,如果我使用下面的代码,它可以正常工作但需要很多时间。

 foreach(ListItem item in _listitems) {
     DateTime start = ((DateTime) item["Effort_x0020_Date"]);
     ClientResult < string > result = Utility.FormatDateTime(clientcontext, clientcontext.Web, start, DateTimeFormat.DateTime);
     clientcontext.ExecuteQuery();
     DateTime rightStart = Convert.ToDateTime(result.Value, new CultureInfo((int) web.Language));
     //item["Effort_x0020_Date"] = rightStart;
 }

不知何故,我想要一种可以更快地完成此操作的替代方法,以便每次都能避免连接到sharepoint。

1 个答案:

答案 0 :(得分:4)

我通过

解决了这个问题
_query.DatesInUtc=false.

有效!!