我有一个NSDate
和持续时间。我需要时间如何将时间间隔添加到NSDate?
考虑后得到的时间:
日期是“2010-02-24 12:30:00 -1000”
持续时间为3600秒
我需要得到“2010 -02-24 13:30:00 -1000“
我认为dateWithTimeIntervalSinceReferenceDate:
,会做的伎俩,但我现在看到,这给出了从2001年1月1日格林尼治标准时间的日期偏移量。
难道还有其他的C函数,我需要使用
我有一个NSDate
和持续时间。我需要时间如何将时间间隔添加到NSDate?
考虑后得到的时间:
日期是“2010-02-24 12:30:00 -1000”
持续时间为3600秒
我需要得到“2010 -02-24 13:30:00 -1000“
我认为dateWithTimeIntervalSinceReferenceDate:
,会做的伎俩,但我现在看到,这给出了从2001年1月1日格林尼治标准时间的日期偏移量。
难道还有其他的C函数,我需要使用
由于DyingCactus声明,您可以使用NSDate的addTimeInterval方法,但取决于操作系统版本,将会创建一个编译器警告,因为它在2009年10月10日之前不推荐使用10.6。
目前推荐的方法是使用dateByAddingTimeInterval上的NSDate:
NSDate *newDate = [oldDate dateByAddingTimeInterval:3600];
请注意,如果你的目标10.5或更早的版本,原来的答案会工作。
你想要的类方法dateWithTimeInterval:sinceDate:
这需要的起始日期和间隔NSDate docs
我找不到dateWithTimeInterval:sinceDate,但现在你让我再看看我确实看到initWithTimeInterval:sinceDate :.那就是诀窍。谢谢。 – user278859 2010-02-24 22:57:42
'dateWithTimeInterval:sinceDate'是一个类方法,而不是一个实例方法,它将结果作为自动发布的NSDate返回。您最终习惯了命名约定。 – Abizern 2010-02-25 01:01:21
好的,我明白了为什么我看不到dateWithTimeIntervalSinceDate。您的链接是到Mac OSX Reference Library。它不适用于iPhone。 但正如其他人指出的,还有其他几种方法可以在iPhone上使用它。 – user278859 2010-02-25 02:11:21
可以使用的NSDate的addTimeInterval实例方法:
NSDate *newDate = [oldDate addTimeInterval:3600];
编辑:由于芯片库恩正确指出,这种方法已被弃用。请改用其他方法之一。
除了使用不推荐使用的addTimeInterval方法,还可以使用NSDate的更新的dateByAddingTimeInterval实例方法。
NSDate *newDate = [oldDate dateByAddingTimeInterval:2500];
对于那些寻找一个斯威夫特3.x版:
let newDate = Date.init(timeInterval: 2600, since: oldDate)
感谢所有回答。我没有在这篇文章中阅读好文档。 – user278859 2010-02-24 22:59:19