NSPredicate para filtrar entre duas datas do tipo NSString
Eu tenho alguns dados (comoNSDictionary
em umNSMutableArray
), uma amostra de dados é como,
Considere cada linha comoNSDictionary
e toda a tabela é umaNSMutableArray
contém eventos.
Quero resultar entre duas datas, então estou usandoNSPredicate
para filtrar meus dados.
Aqui está o meu trecho de código para isso,
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Date >= %@ AND
Date <= %@", startDate,endDate];
NSArray *filter = [arrayEvents filteredArrayUsingPredicate:predicate];
Filtragem de teste:
Caso 1:
NSString *startDate = @"01/07/14";
NSString *endDate = @"31/07/2014";
Resultado: Todos os eventos (linhas).
Caso 2:
NSString *startDate = @"20/07/14";
NSString *endDate = @"31/07/2014";
Resultado: Últimos quatro eventos (linhas).
Caso 3:
NSString *startDate = @"11/07/14";
NSString *endDate = @"20/07/2014";
Resultado: Apenas o segundo evento (linha).
Caso 4:
NSString *startDate = @"01/08/14";
NSString *endDate = @"31/08/2014";
Resultado: Todos os eventos (linhas).
Conclusão:
Os casos 1, 2 e 3 estão corretos, enquanto o caso 4 está incorreto.
Notas:
Data é do tipoNSString
O formato da data é data-mês-ano (ou seja, dd / MM / aaaa)A mesma data par de resultado é formatada com- hyphen
ao invés de/ (forward slash)
Mesmo resultado, mesmo que tenhamos alterado o formato da data mês-data-ano (isto é, MM / dd / aaaa)Alguém por favor me ajude o que estou fazendo de errado aqui? Falta alguma coisa? Eu sei que existem algumas outras perguntas, mas nenhuma delas me ajudou.