user278859 user278859 - 17 days ago 7
Objective-C Question

How to add a time interval to an NSDate?

I have an

NSDate
and a duration. I need to get the time after the duration

Given:

The date is "2010-02-24 12:30:00 -1000"

duration is 3600 secs

I need to get "2010-02-24 13:30:00 -1000"

I thought
dateWithTimeIntervalSinceReferenceDate:
, would do the trick but I see now that this gives a date offset from 1 Jan 2001 GMT.

Is there another C function I need to use

Answer

As DyingCactus states, you can use the addTimeInterval method of NSDate, but depending on the OS version is will create a compiler warning, since it is deprecated in 10.6 as of 2009-08-17.

The current recommended method is to use dateByAddingTimeInterval on NSDate:

NSDate *newDate = [oldDate dateByAddingTimeInterval:3600];

Note that if you are targeting 10.5 or earlier, the original answer will work.