Подтвердить что ты не робот

Как вычесть часы из NSDate?

Я хотел бы вычесть 4 часа с даты. Я прочитал строку даты в объекте NSDate, используя следующий код:

NSDateFormatter * dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSDate * mydate = [dateFormatter dateFromString:[dict objectForKey:@"published"]];

Что мне делать дальше?

4b9b3361

Ответ 2

NSCalendar - это общий API для изменения дат, основанных на единицах человеческого времени. Для этого вы можете использовать NSCalendar -dateByAddingComponents:toDate:options: с отрицательным количеством часов.

Ответ 3

Так как iOS 8 имеет более удобный dateByAddingUnit:

Swift 2.x

//subtract 3 hours
let calendar = NSCalendar.autoupdatingCurrentCalendar()
newDate = calendar.dateByAddingUnit(.Hour, value: -3, toDate: originalDate, options: [])

Ответ 4

//in Swift 3
//subtract 3 hours
let calendar = NSCalendar.autoupdatingCurrent
newDate = calendar.date(byAdding:.hour, value: -3, to: originalDate)

Ответ 5

Эй, Мириам,
Функция dateFromString возвращает NSDate, а не NSString. вы должны изменить,

NSDate * theDate = [dateFormatter dateFromString: datetemp];

надеюсь, что это поможет,
Bests.
G.