Я использую основные данные в своем приложении для iphone, но в некоторых случаях я использую sqlite для доступа к данным, и у меня возникла проблема с NSDate.
NSDate *now = [NSDate date];
NSCalendar *calender = [NSCalendar currentCalendar];;
NSDateComponents *comp = [calender components:NSYearCalendarUnit fromDate:now];
[comp setDay:1];
[comp setMonth:1];
NSDate *yearAgo = [calender dateFromComponents:comp];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"date > %@",yearAgo];
Этот код работает и выбирает записи с начала года, но если я использую sqlite raw query
NSDate *current=[NSDate date];
NSDateComponents *comps = [gregorian components:(NSDayCalendarUnit | NSMonthCalendarUnit |NSYearCalendarUnit) fromDate:current];
[comps setDay:1];
[comps setMonth:1];
NSDate *yearDate = [gregorian dateFromComponents:comps];
[where appendFormat:@"zdate > '%@' ",yearDate];
У меня проблема, неправильная дата, определенная записями. Записи, в основной дате которых есть дата, например 2008-01-01, в sqlite имеют даты, например 1977 год.
Как это исправить? Может быть, я неправильно использовал NSDate в запросе?