I use Core Data for storing my data model objects. Each object has NSDate property.
NSDate property has format like below:
2013-03-18 12:50:31 +0000
If your dates are stored as actual dates then you should use that to your advantage and not fiddle with formats. You can simply create a predicate that checks that if the dates is between two dates (with times). The first date is your date with the time 00:00:00 and the second date is one day after that.
// Create your date (without the time)
NSDateComponents *yourDate = [NSDateComponents new];
yourDate.calendar = [NSCalendar currentCalendar];
yourDate.year = 2013;
yourDate.month = 3;
yourDate.day = 18;
NSDate *startDate = [yourDate date];
// Add one day to the previous date. Note that 1 day != 24 h
NSDateComponents *oneDay = [NSDateComponents new];
oneDay.day = 1;
// one day after begin date
NSDate *endDate = [[NSCalendar currentCalendar] dateByAddingComponents:oneDay
toDate:startDate
options:0];
// Predicate for all dates between startDate and endDate
NSPredicate *dateThatAreOnThatDay =
[NSPredicate predicateWithFormat:@"(date >= %@) AND (date < %@)",
startDate,
endDate]];