Как установить часовую минуту в nsdate программно?
У меня есть формат 14:01:20 в одном лейбле; после некоторых вычислений мне нужно изменить час и / или минуту этого ярлыка.
То есть возможно ли изменить это значение метки, преобразовав его как объект NSDate и изменив часы и минуты, как 3:20:30 PM?
Есть ли для этого методы сеттера?
2 ответа
Решение
Если вам нужно вычислить конкретные реальные экземпляры во времени, например, 3:20:30 23 октября 2010 г., то вы хотите использовать NSCalendar, который позволяет разбивать даты и выполнять вычисления, связанные с датами.
Слово предупреждения. Дата и время вычисления удивительно сложны и подробны. Ожидайте потратить пару часов на изучение API.
Ответ на ваш первый вопрос "Как программно установить часовую минуту в nsdate?" Следующий:
NSDate* result;
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setMinute:0];
[comps setHour:0];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
result = [gregorian dateFromComponents:comps];
[comps release];