我正在创建一个窗口表单,用于从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。
答案 0 :(得分:4)
我通过
解决了这个问题_query.DatesInUtc=false.
有效!!