我有一個具有兩個日期屬性(date1和date2)的Core Data模型,並且想要獲取具有date2 - date1> x天的所有對象。我已經嘗試過:如何使用日期差異過濾大於x天的NSPredicate
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"MyEntity"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"date1 != nil AND date2 != nil AND date2 - date1 > %d", x*86400];
我的NSDate的理解是,這僅僅是圍繞着Unix時間戳的包裝和核心數據通過內部比較時間戳兩個日期進行比較。有一天有86400秒,所以上面的謂詞對我來說總是有意義的,但不知怎的,它也會返回具有小於x天差異的對象。
我在做什麼錯?
「一天有86400秒」這是不正確的。有幾秒鐘的時間(夏令時節省)和不同日曆的日曆時間不同。查看有關日期和時間管理的WWDC 2013會話。 –
你是對的,但是這個應用只會在一個國家的受控環境中使用,所以這不會導致意外的行爲。 – knukko
date1和date2的順序是否重要?他們總是按照相同的順序嗎? –