[SharePoint 2010] Client Object Model 跨时区查询list item的方法
SharePoint将所有的Datetime类型的数据都以universal的形式(UTC)存储在数据库中,当要在页面上显示类似list item的"Created", "Modified"等时间日期信息时,将数据库中的UTC时间取出来,然后根据当前Site的Regional Setting中设置的时区信息换算成当前的时间,所以我们在页面中看到的是当前时区下的正确时间。可是当我们用Client Object Model,通过CamlQuery 去查询list item的时候, 一旦涉及到Datetime类型的字段的时候就会遇见问题,比如说我要查询今天created的item,我把下面的ViewXML传给SharePoint Server
CamlQuery query = new CamlQuery();
query.DatesInUtc = true;
query.ViewXml = @"<View>
<Query>
<Where>
<Eq>
<FieldRef Name='Created'/>
<Value Type='DateTime'>" + today + @"</Value>
</Eq>
</Where>
</Query>
</View>";
ListItemCollection items = targetList.GetItems(query);
clientContext.Load(items);
clientContext.ExecuteQuery();
这时候SharePoint 就会以today的时间去作查询,因为没有时区信息,所以当client和SharePoint server不在同一时区设置时,查询结果就会错误,因为SharePoint不知道client object model传过来的时间是什么时区的,它只会根据字面的值在当前时区下查询。
解决方法如下,在Caml中加入一个"StorageTZ"的属性,然后给一个UTC时间,这就告诉SharePoint,我要用UTC时间来查询,所得的结果也是正确的。
//DateTime today = DateTime.Now;
CamlQuery query = new CamlQuery();
query.DatesInUtc = true;
query.ViewXml = @"<View>
<Query>
<Where>
<Eq>
<FieldRef Name='Created'/>
<Value StorageTZ='TRUE' Type='DateTime'>" + today + @"</Value>
</Eq>
</Where>
</Query>
</View>";
ListItemCollection items = targetList.GetItems(query);
clientContext.Load(items);
clientContext.ExecuteQuery();
转载于:https://www.cnblogs.com/tonnie/archive/2011/11/01/com.html
[SharePoint 2010] Client Object Model 跨时区查询list item的方法相关推荐
- 总结:Sharepoint2010 Client Object Model -- ECMAScript Client
ECMAScript Client : 1. 在 SP.js 里有许多现成的方法操纵 Sharepoint对象, 路径:C:\Program Files\Common Files\Microsoft ...
- 如何开启匿名访问SharePoint 2010里的Client Object Model
正如大家所知道的,SharePoint 2010 集成了一个新的特性"客户端对象模型( Client Object Model)",这真的是个很有趣的东西,开发人员可以很方便的写一 ...
- Sharepoint学习笔记 –架构系列—Sharepoint的客户端对象模型(Client Object Model)
前面过了一下Sharepoint的服务器端对象模型,接下来就让我们大致看看Sharepoint的客户端对象模型(Client Object Model: Client OM). 首先需要了解的就是Sh ...
- Sharepoint学习笔记 –架构系列—12 Sharepoint的客户端对象模型(Client Object Model)
前面过了一下Sharepoint的服务器端对象模型,接下来就让我们大致看看Sharepoint的客户端对象模型(Client Object Model: Client OM). 首先需要了解的就是Sh ...
- 总结:Sharepoint2010 Client Object Model -- Silverlight Client
Silverlight Client: 1. 添加引用, Add Reference: Microsoft.SharePoint.Client.Silverlight.dll: Microsoft.S ...
- MOSS 2010:Visual Studio 2010开发体验(19)——ECMAScript Object Model
这篇文章部分材料摘自下面这个地址,我做了翻译,并且按照我的案例场景做了补充 http://www.codeproject.com/Articles/60348/SharePoint-2010-Clie ...
- sharepoint 2010 培训公司课程内容
sharepoint 2010 培训公司课程内容:用之学习参考,引导. 1>sharepoint 2010开发概述; 2>VS2010 开发SHAREPOINT 2010; 3>sh ...
- SharePoint 2010 沙盒开发
前言 本文期图阐述在SP2010里面Sandboxed的原理极其相关使用.写这篇文章的时候正好遇到一个用户的case,这个case需要在某个列表里输入数据点击保存后数据能按照一定的格式插到Calend ...
- SharePoint 2010开发实例精选——通过客户端对象模型删除页面上的Web部件
下面的例子是在控制台应用程序中使用客户端对象模型,为了在控制台程序中使用ClientContext,我们需要添加两个dll引用到我们的项目中.Microsoft.SharePoint.Client.d ...
最新文章
- 基于知识图谱的行业问答系统搭建分几步?
- 一个野路子java程序员的自述
- 【ruoyi若依】为当前页添加显示事件
- 使用SDL打造游戏世界之入门篇 - 4
- 【C语言进阶深度学习记录】十八 条件编译的使用与分析
- 【Clickhouse】Clickhouse 运算符 操作符 算术,比较,取整,逻辑,哈希,条件 字符串函数
- 计算机学院学生会宣传稿,计算机与信息工程学院学生会
- 基本的阿里云Linux服务器设置
- XLSTransformer生成excel文件案例
- Unity实现鼠标点击指定位置导航角色
- MATLAB常用正则表达式记录
- ERP系统实施之入门
- 基于Ruby 安装 sass 安装出现的错误以及解决
- java徽章_java
- 计算机键盘规律,计算机盲打键盘指法图顺口溜
- 电子签章,一章通用还有多远?
- Python + Django4 搭建个人博客(十):实现文章详情页面
- 【Windows】关闭Windows Update自动更新
- MATLAB小技巧(20)矩阵分析--主成分回归
- ios Mac下的SVN工具:Cornerstone与Versions和使用subversion管理iOS源代码
热门文章
- 操作表格_Excel表格基础操作-新手入门级
- eclipse wsdl2java_使用Eclipse的wsdl2java工具
- c语言折半查找输出坐标,数据结构(C语言版)——有序表查找(折半查找)(代码版)...
- matlab rootdir,Python cfg.ROOT_DIR属性代码示例
- linux无桌面重做系统,Linux不需要重做系统
- 如何在博客内添加音乐
- 数据结构【插入操作具体代码的实现】
- 李牛(Linux)vi
- IAP-应用内购买流程
- Projection投影