我有一個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