我有一个NSDate
和一个持续时间。我需要在持续时间之后得到时间
:
日期是“2010-02-24 12:30:00 -1000”
持续时间为3600秒
我需要“2010-02-24 13:30:00 -1000”
我认为dateWithTimeIntervalSinceReferenceDate:
会做到这一点,但我现在看到这给出的日期偏离2001年1月1日GMT。
我需要使用另一个C函数
答案 0 :(得分:32)
正如DyingCactus所述,你可以使用NSDate的addTimeInterval方法,但是根据操作系统版本会产生编译器警告,因为截至2009-08-17,它已在10.6中弃用。
目前推荐的方法是在NSDate上使用dateByAddingTimeInterval:
NSDate *newDate = [oldDate dateByAddingTimeInterval:3600];
请注意,如果您的目标是10.5或更早,原始答案将有效。
答案 1 :(得分:4)
您希望类方法dateWithTimeInterval:sinceDate:
采用开始日期和时间间隔NSDate docs
答案 2 :(得分:3)
您可以使用NSDate的addTimeInterval实例方法:
NSDate *newDate = [oldDate addTimeInterval:3600];
编辑:正如Chip Coons正确指出的那样,此方法已被弃用。请改用其他方法之一。
答案 3 :(得分:1)
对于那些寻找Swift 3.x版本的人:
let newDate = Date.init(timeInterval: 2600, since: oldDate)
答案 4 :(得分:0)
您可以使用NSDate的较新dateByAddingTimeInterval实例方法,而不是使用已弃用的addTimeInterval方法。
NSDate *newDate = [oldDate dateByAddingTimeInterval:2500];