добавить NSTimeInterval к ​​NSDate в какао - PullRequest
21 голосов
/ 23 апреля 2009

У меня есть NSDate, который представляет определенное время. Формат этой даты hhmmss. Я хочу добавить значение NSInterval (указанное в секундах) к этому значению времени.

Пример:

NSDate =         123000
NSTimeInterval = 3600

Added together = 133000

Каков наилучший способ сделать это?

Ответы [ 3 ]

53 голосов
/ 23 апреля 2009

Вы видели руководство по по датам и времени для какао ?

В основном вам нужно преобразовать свое время в NSDate. Чтобы преобразовать строку в дату, вы используете класс NSDateFormatter или, возможно, NSDateComponents, если вы уже знаете часы, минуты и секунды.

Ваш NSTimeInterval является просто двойным (т. Е. 3600.0).

Затем вы используете метод dateByAddingTimeInterval NSDate для добавления количества секунд ко времени.

NSDate* newDate = [oldDate dateByAddingTimeInterval:3600.0];

Затем вы можете использовать NSDateFormatter или NSDateComponents, чтобы снова вернуть новое время.

8 голосов
/ 07 января 2011

addTimeInterval больше не поддерживается. Попробуйте вместо этого dateByAddingTimeInterval .

1 голос
/ 26 октября 2013
// This will set the time when your view appears it will also
// set the time if you want to retrieve from it.
-(void)viewDidAppear:(BOOL)animated
{
     //Create todays date
     NSDate *duedate = [NSDate date];
     //Add how ever many days you could write 86400*numbe_of_days days 86400/24 for an hour
     //Then simply reassign the variable or use a different one.
     duedate = [duedate dateByAddingTimeInterval:86400];  //I add one day
     [datePicker setDate:duedate animated:YES]; //Animate yes will show your pickers moving
     [datePicker setMinimumDate:duedate]; //Set minimum date.
}
...