When i am querying calendar's record from Exchange server, i am getting records 2016-12-26T08:52:29Z in this format, But when i am trying to querying by using 2016-12-26T08:52:29Z this date format it does not return anything?
When i give (less than) < 2016-12-26T08:52:29Z or (greater than) > 2016-12-26T08:52:29Z date format it's work fine & it's returning the records.
in java code i am using SearchFilter.IsEqualTo
for date filtering it did't work
but SearchFilter.IsLessThan
or SearchFilter.IsGreaterThan
it's working fine.
Am i giving any wrong date format. ?
Here is the code:
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);
}
}
}