How to add a time interval to an NSDate?

前端 未结 5 1723
别跟我提以往
别跟我提以往 2020-12-06 03:32

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

相关标签:
5条回答
  • 2020-12-06 03:37

    For those looking for a Swift 3.x version:

    let newDate = Date.init(timeInterval: 2600, since: oldDate)
    
    0 讨论(0)
  • 2020-12-06 03:42

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

    0 讨论(0)
  • 2020-12-06 03:43

    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.

    0 讨论(0)
  • 2020-12-06 03:58

    You can use the addTimeInterval instance method of NSDate:

    NSDate *newDate = [oldDate addTimeInterval:3600];
    

    Edit: As Chip Coons correctly points out, this method has been deprecated. Please use one of the other methods instead.

    0 讨论(0)
  • 2020-12-06 04:00

    Instead of using the deprecated addTimeInterval method, you can use the newer dateByAddingTimeInterval instance method of NSDate.

    NSDate *newDate = [oldDate dateByAddingTimeInterval:2500];
    
    0 讨论(0)
提交回复
热议问题