Как увеличить одну секунду объект NSDate

У меня есть NSString, который имеет формат @ "2013-01-09 06:10:10 +0000" (я получаю его с сервера, и это не текущее время). Я хочу непрерывно увеличивать его на одну секунду. Я могу использовать таймер для этого, но как увеличить время на одну секунду?

Ответ 1

Попробуйте это,

NSDate *correctDate = [NSDate dateWithTimeInterval:1.0 sinceDate:yourDate];

Вы можете получить yourDate из строки, используя NSDateFormatter.

Ответ 2

добавьте 1 секунду в свою дату, например, ниже.

NSDate *mydate = [NSDate date];
NSTimeInterval secondsInEightHours = 60; // you can add hours and minuts with multiply the numbers with this second..
NSDate *dateEightHoursAhead = [mydate dateByAddingTimeInterval:secondsInEightHours];

Ответ 3

Скажите, что строка даты указана в переменной var serverString. Вы можете получить дату таким образом...

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss z"];
NSDate *date = [df dateFromString:serverString];

И увеличивайте его следующим образом:

date = [date dateByAddingTimeInterval:1.0];

Ответ 4

В настоящее время (2017) Apple рекомендует использовать (NS)Calendar для всех видов математики даты

Objective-C

NSDate *now = [NSDate date];
NSCalendar *currentCalendar = [NSCalendar currentCalendar];
NSDate *nowPlusOneSecond = [currentCalendar dateByAddingUnit:NSCalendarUnitSecond 
                                                       value:1 
                                                      toDate:now 
                                                     options:NSCalendarMatchNextTime];

Swift 3

let now = Date()
let currentCalendar = Calendar.current
let nowPlusOneSecond = currentCalendar.date(byAdding: .second, value: 1, to: now)!

Ответ 5

SWIFT 3.x Решение

// Just an example to present second level date/time calculation
let time = NSDate()
let interval:Double = 5.0
let timeFiveSecondLater = time.addingTimeInterval(interval)