Search code examples
objective-ccocoacocoa-touchnsdatedate-arithmetic

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


Solution

  • 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.