用于从Sharepoint列表中获取特定日期数据的Caml查询

用于从Sharepoint列表中获取特定日期数据的Caml查询,sharepoint,caml,Sharepoint,Caml,我有一个sharepoint列表,其中一列创建日期为DateTime类型,允许的值为OnlyDate 我专栏中的提交日期是2011年5月18日。当我使用下面的CAML查询执行搜索时,它不会给出任何结果,尽管我有两个带有此日期的项目 <Where><Eq><FieldRef Name='Date_x0020_Created' /><Value Type='DateTime'>5/18/2011</Value></Eq><

我有一个sharepoint列表,其中一列创建日期为DateTime类型,允许的值为OnlyDate

我专栏中的提交日期是2011年5月18日。当我使用下面的CAML查询执行搜索时,它不会给出任何结果,尽管我有两个带有此日期的项目

<Where><Eq><FieldRef Name='Date_x0020_Created' /><Value Type='DateTime'>5/18/2011</Value></Eq></Where>
5/18/2011

我不明白这个问题出了什么问题。有人请帮忙。

您可以使用CAML查询生成器测试您的查询。要了解CAML查询的基础知识以及如何使用CAML查询生成器,请阅读以下文章-它们将帮助您解决问题


Sharepoint接受UTC中ISO 8601日期时间格式的日期时间。格式是

yyyy-MM-ddTHH:mm:ssZ
因此,对于您的示例,您可以使用

2011-05-18T00:00:00Z
提供了执行此转换的方法。 要在Java中创建此功能,可以使用以下方法:

private String changeDateToISO8601(Date date) {
    TimeZone timeZone = TimeZone.getTimeZone("UTC");
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
    dateFormat.setTimeZone(timeZone);
    String convertedDate = dateFormat.format(date);
    return convertedDate;
}

另外,您可能无法仅通过
标签找到这两个项目,因为可能存在时差。为此,您需要将日期括在
标记中