2012-09-19 42 views
6

En mi modelo que tiene atributo de fecha y me la puso [NSDate date], pero conseguir con predicado comodatos básicos NSPredicate Fecha

NSPredicate *predicate = [NSPredicate predicateWithFormat: 
           @"date==%@ ,date]; 

declaraciones de Notting. Sé que el problema es que cuando configuro [NSDate date], también almacena tiempo y NSPredicate siempre devuelve datos vacíos. ¿Hay alguna forma de convertir "date==%@" parte solo para buscar la fecha?

+0

El problema con hacer predicados con fechas como esta es que esto hará una comparación de menos de milisegundos; debe tener * exactamente * el mismo instante en el tiempo, no solo el mismo día calendario. –

+0

Este "debe tener exactamente el mismo instante en el tiempo" me hizo pensar en esta idea para ocuparme del tiempo en las fechas: haga que el tiempo de su fecha sea todo el 0 justo antes de guardarlo. Y al recuperar del modelo, pase un valor de fecha con el tiempo como 0s. –

Respuesta

18
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(date >= %@) AND (date <= %@)", startDate, endDate]; 
+0

gracias por la respuesta, pero tengo una fecha (hoy). endDate debería ser mañana? – Ercan

+0

es su elección ... no proporcione la fecha de finalización, elimine la parte tat. pasar solo el día de inicio. NSPredicate * predicate = [NSPredicate predicateWithFormat: @ "(date> =% @)", startDate]; – cancerian

+0

configurando solo startDate provocó que si doy 2 días antes de la fecha, me devuelva todos los registros entre 2 días antes y hoy. Lo arreglé agregando 1 día a la fecha seleccionada y usé tu primera respuesta con endDate. – Ercan

Cuestiones relacionadas