У меня есть NSString, который имеет формат @ "2013-01-09 06:10:10 +0000" (я получаю его с сервера, и это не текущее время). Я хочу непрерывно увеличивать его на одну секунду. Я могу использовать таймер для этого, но как увеличить время на одну секунду?
Как увеличить одну секунду объект NSDate
Ответ 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)