Как добавить часы к NSDate? - PullRequest
       12

Как добавить часы к NSDate?

49 голосов
/ 31 октября 2009

У меня есть дата, преобразованная в двойное значение и сохраненная в базе данных. Теперь я хочу сравнить, если currentDate > myDataBaseDate + 8 часов, т.е. я хочу добавить 8 часов к myDataBaseDate. Я конвертирую дату в двойные значения. Итак, как я могу получить 8 часов позже из моей сохраненной базы данных. Как мне сравнить

if (currentDateTime > DateFromdatabaseValue + DateByAdding8HoursInDataBase)

Ответы [ 6 ]

147 голосов
/ 31 октября 2009

Я не совсем уверен, что вы пытаетесь сделать, но вы можете создать объект NSDate, добавив время в секундах к другому NSDate, используя:

- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds

// напр. добавить 8 часов к текущему времени:

NSDate *mydate = [NSDate date];
NSTimeInterval secondsInEightHours = 8 * 60 * 60;
NSDate *dateEightHoursAhead = [mydate dateByAddingTimeInterval:secondsInEightHours];
15 голосов
/ 10 мая 2015

Начиная с iOS 8 есть более удобная dateByAddingUnit:

//add 8 hours
let calendar = NSCalendar.autoupdatingCurrentCalendar()
newDate = calendar.dateByAddingUnit(.CalendarUnitHour, value: 8, toDate: originalDate, options: nil)
2 голосов
/ 15 января 2015

Вы можете просто использовать:

NSDate *incrementedDate = [NSDate dateWithTimeInterval:numberOfSeconds sinceDate:[NSDate date]];
0 голосов
/ 28 февраля 2017

Swift 3.X Простое использование

let calendar = NSCalendar.autoupdatingCurrent
let newDate = calendar.date(byAdding: .hour, value: 8, to: Date())
0 голосов
/ 17 октября 2014

NSDate * startdate = datePicker.date;

    NSTimeInterval secondsInOneHours = 1 * 60 * 60;

    NSDate *dateOneHoursAhead = [startdate dateByAddingTimeInterval:secondsInOneHours];

    [dateformate setDateFormat:@"d-MMM-yy HH:mm:ss"];

    strDate = [dateformate stringFromDate:dateOneHoursAhead];
0 голосов
/ 31 октября 2009

Вы можете просто добавить 8 * 3600 к значению вашей базы данных (при условии, что ваше преобразованное двойное значение представляет секунды).

...