Можно ли использовать форматирование строк, которое вы использовали для создания строки? Итак, предположим, что вы создали строку, как это:
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm a"];
NSString *dateAsString = [formatter stringFromDate:[NSDate date]];
Вы можете получить NSDate так:
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm a"];
NSDate *date = [formatter dateFromString:dateAsString];
На следующий день, месяц, год и информация о временной зоне не будет храниться, но вы У меня есть объект NSDate со значениями 1/1/1970 и GMT для смещения часового пояса.
На этом этапе вы можете использовать сравнение: (которое обычно зарезервировано для операций сортировки) или методы laterDate: или earlyDate:.
Будьте осторожны с использованием NSDateFormatter, так как вы можете столкнуться с проблемами интернационализации.
Если вам нужно добавить информацию о текущей дате на дату, которую вы получаете с dateFromString :, например, день месяца и год, вам нужно использовать метод dateByAddingComponents для NSCalendar: toDate: options: method.
Это похоже на самый логичный способ сделать это. – Chuck
Да, это оказалось решением (хотя другие, упомянутые здесь, вероятно, тоже работали). Я закончил тем, что добавил еще один атрибут к объекту Core Data, чтобы сохранить дату в качестве экземпляра NSDate, а затем разложить его на компоненты и сравнить с компонентами, полученными с текущей даты. Работает как шарм, но код прикольный. Слава богу за сложение кода. – Andy