我有一個核心數據表視圖,我比較日期。我目前使用的方法是:if ([todayDate compare: [NSDate date]]==NSOrderedAscending)
。這工作完美但緩慢。我不需要知道時間的不同。任何幫助深表感謝!比較NSDate與[NSDate日期]最快的方法?
回答
我真的認爲,NSDates方法isEqualToDate:
是你正在尋找。在我看來,是蘋果的方式來回答你的問題:
NSDate *date1 = ...;
NSDate *date2 = ...;
BOOL datesAreEqual = [date1 isEqualToDate:date2];
嘿,感謝您的幫助,但它只告訴我日期是否等於或小於或大於。儘管謝謝您的幫助! – iDeveloper
您應該閱讀文檔中的「比較日期」部分:http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSDate_Class/Reference/Reference.html In你需要知道的情況下我會使用' - (NSDate *)earlierDate:(NSDate *)anotherDate' –
一種選擇是不實際創建一個新的NSDate
對象,但使用時間間隔進行比較。不知道性能,但可能值得一試。
if ([todayDate timeIntervalSinceReferenceDate] > [NSDate timeIntervalSinceReferenceDate]) {
...
}
我沒有測量它,但你可能也想嘗試:
NSTimeInterval i = [todayDate timeIntervalSinceNow];
其中結果(i
)可以是正的或負的。
您也可以嘗試CFDateCompare
。
或者您可能想要考慮另一種表示數據庫中某個時間點的方式 - 例如CFTimeInterval
(代表公共參考時間的秒數double
)。
你應該還記得在一個局部變量的當前日期或當前時間戳:
NSTimeInterval current = [NSDate timeIntervalSinceReferenceDate];
後來使用該值對所有的比較:
myTimestamp = [myDate timeIntervalSinceReferenceDate]
if (myTimestamp == current) {
return NSOrderedSame;
} else if (myTimestamp > current) {
return NSOrderedDescending;
} else {
return NSOrderedAscending;
}
或者更快的方法,使用C函數:
// Get the current calendar time as a time_t object.
time_t time (time_t * timer);
// Return difference between two times
double difftime (time_t time2, time_t time1);
- 1. 比較NSDate [NSDate日期]
- 2. NSDate,比較兩個日期
- 3. 兩個NSDate之間的日期比較
- 4. 比較日期的問題 - NSDate
- 5. Swift NSDate比較
- 6. NSDate比較
- 7. 比較NSDate對象
- 8. 比較的NSDate只有在年月日
- 9. 與比較的NSDate [NSMutableArray的objectatIndex:我]
- 10. 之間比較2 NSDate的
- 11. 的NSDate比較失敗
- 12. 比較AM和PM(NSDate的)
- 13. NSDate到MySQL日期
- 14. NSString日期到NSDate
- 15. 比較兩個NSDate失敗
- 16. 核心數據NSDate比較
- 17. 比較NSDate從互聯網上下載的日期
- 18. 如何區分日/夜與[NSDate日期]?
- 19. NSDate顯示錯誤的日期與NSTimezone
- 20. HTTP日期到NSDate的
- 21. 轉換NSDate到日期
- 22. NSDate延遲日期變更
- 23. NSDate - 設置未來日期
- 24. 比較NSMutableArray的NSMutableDictionaires的NSDate值
- 25. NSdate星期日重複日期
- 26. NSDate比較顯示錯誤的值?
- 27. NSDate的比較都不盡如人意
- 28. 比較NSDate的某些組件?
- 29. 比較NSDate的當天或前一天
- 30. 的NSDate從一個日期組件和從其他的NSDate
你能更準確地說明什麼是慢嗎?它是'[NSDate date]'還是比較?你如何衡量緩慢? - 如果你需要'[NSDate date]'在一個包含許多元素的循環中,你只需要計算一次,這可能已經有所幫助了。 –