DateTimeCreated = 2016-12-26T08:52:29Z этот формат даты не работает для запроса обмена

Когда я запрашиваю запись календаря с сервера Exchange, я получаю записи 2016-12-26T08:52:29Z в этом формате, но когда я пытаюсь сделать запрос с использованием 2016-12-26T08:52:29Z, этот формат даты выполняет ничего не вернуть?

Когда я даю (меньше чем) < 2016-12-26T08:52:29Z или (больше чем) > 2016-12-26T08:52:29Z в формате даты, он работает нормально и возвращает записи.

в коде Java, который я использую SearchFilter.IsEqualTo для фильтрации даты это не сработало

но SearchFilter.IsLessThan или же SearchFilter.IsGreaterThan работает нормально

Я даю какой-либо неправильный формат даты.?

Вот код:

private void filter(IBExchangeFilterData filterData,String comparisonOperation,String fieldName,SearchFilter.SearchFilterCollection filterCollection,String[] input) throws IBExchangeException 
{
if(filterData!=null && filterData.getFieldType()!=null && filterData.getFieldValue()!=null)
{
    if(comparisonOperation.equalsIgnoreCase("Between")) 
    {
        SearchFilter filter = new SearchFilter.IsGreaterThanOrEqualTo(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

        String fieldValue2 = input[2];
        IBExchangeFilterData filterData2 = new IBExchangeFilterData();
        if(!fieldName.equalsIgnoreCase("ExtendedProperties"))
        {
        if(_itemType.equalsIgnoreCase("Calendar"))
            filterData2 = getCalendarPropertyDefinition(fieldName,fieldValue2);
        else if(_itemType.equalsIgnoreCase("Tasks"))
            filterData2 = getTaskPropertyDefinition(fieldName, fieldValue2);
        //Defect: 139539 Between : Querying MS Exchange calendar items within date does not work.
        else if(_itemType.equalsIgnoreCase("Mail"))
            filterData2 = getMailPropertyDefinition(fieldName, fieldValue2);
        //Defect 140430: Querying Contacts using Between operator for DateTime is not working in Exchange.
        else if (_itemType.equalsIgnoreCase("Contacts"))
            filterData2 = getContactPropertyDefinition(fieldName, fieldValue2);


        if(filterData2.getFieldType().equals(AppointmentSchema.Start))
            endDate = (Date)filterData2.getFieldValue();
        else if(filterData2.getFieldType().equals(AppointmentSchema.End))
            endDate = (Date)filterData2.getFieldValue();
        }
        SearchFilter filter2 = new SearchFilter.IsLessThanOrEqualTo(filterData2.getFieldType(), filterData2.getFieldValue());
        filterCollection.add(filter2);

    }else if(comparisonOperation.equalsIgnoreCase("=")) {
        SearchFilter filter = new SearchFilter.IsEqualTo(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

    }else if(comparisonOperation.equalsIgnoreCase("!=")) {
        SearchFilter filter = new SearchFilter.IsNotEqualTo(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

    }else if(comparisonOperation.equalsIgnoreCase("<>")) {
        SearchFilter filter = new SearchFilter.IsNotEqualTo(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

    }else if (comparisonOperation.equalsIgnoreCase(">")) {
        SearchFilter filter = new SearchFilter.IsGreaterThan(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

    }else if (comparisonOperation.equalsIgnoreCase(">=")) {
        SearchFilter filter = new SearchFilter.IsGreaterThanOrEqualTo(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

    }else if (comparisonOperation.equalsIgnoreCase("<")) {
        SearchFilter filter = new SearchFilter.IsLessThan(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

    }else if (comparisonOperation.equalsIgnoreCase("<=")) {
        SearchFilter filter = new SearchFilter.IsLessThanOrEqualTo(filterData.getFieldType(), filterData.getFieldValue());
        filterCollection.add(filter);

    }else if (comparisonOperation.equalsIgnoreCase("like")) {
        SearchFilter filter = new SearchFilter.ContainsSubstring(filterData.getFieldType(), filterData.getFieldValue().toString(),ContainmentMode.Substring,ComparisonMode.IgnoreCase);
        filterCollection.add(filter);
    }
}

}

0 ответов

Другие вопросы по тегам