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);
}
}
}