2011-05-20 85 views
1

我有一個分享列表,其中一個hte列創建日期類型爲DateTime,允許的值爲OnlyDate。Caml查詢從特定日期的Sharepoint列表中獲取數據

我列中提交的日期是05/18/2011。當我使用下面的CAML查詢執行搜索時,雖然我有兩個具有此日期的項目,但它沒有給出任何結果。

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

我不明白這個查詢有什麼問題。有人請幫忙。

回答

0

的SharePoint接受ISO 8601的日期時間的日期時間形式中UTC。格式是

yyyy-MM-ddTHH:mm:ssZ 

因此,對於你的例子中,你可以使用

2011-05-18T00:00:00Z 

SPUtility確實提供了做這種轉換的方法。 使用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; 
} 

附:您可能無法找到使用此項目的兩個項目,因爲可能存在時差,只需<Eq>標記即可。爲此,您需要在<Leq><Geq>標籤中附上日期。

相關問題