Я не уверен, что происходит с этим.Я пытаюсь загрузить объект NSString * из файла, преобразовать его в NSDate * с помощью средства форматирования даты, а затем преобразовать компоненты часов и минут обратно в NSString, чтобы я мог отображать время в Интерфейсном Разработчике.Однако вместо времени, которое было сохранено в файл, вместо этого я получаю 19 для часа и 0 для минуты.(Независимо от того, что было вставлено, программа загружает четыре разных NSDates)
Вот код для загрузки даты из файла (я проверил с помощью точек останова, и массив действительно содержит правильные данные, так что это не такпроблема)
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];
date1 = [[df dateFromString:[loadArray objectAtIndex:3]] retain];
Вот код для отображения даты.
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comp = [[gregorian components:NSHourCalendarUnit|NSMinuteCalendarUnit fromDate:myDrug.date1] retain];
hourField1.text = [NSString stringWithFormat:@"%d", comp.hour];
minuteField1.text = [NSString stringWithFormat:@"%d", comp.minute];
(hourField1 и minuteField1 - это IBOutlets, которые, кстати, получают значения)
Я не уверен, где я ошибся, и любая помощь будет принята с благодарностью.Спасибо!
Обновление: по предложению некоторых из присутствовавших здесь людей я обнаружил проблему и обнаружил, что она не работает.Пример даты: 2011-02-14 06:00:00 по Гринвичу. Форматирование даты: гггг-мм-дд чч: мм: сс а, поэтому я не уверен, почему это не сработает.