Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 493
user278859 Avatar asked Feb 24 '10 20:02

user278859


2 Answers

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.

like image 165
Chip Coons Avatar answered Oct 17 '22 17:10

Chip Coons


You want the class method dateWithTimeInterval:sinceDate: which takes the starting date and the interval NSDate docs

like image 4
mmmmmm Avatar answered Oct 17 '22 16:10

mmmmmm