我有DATE數據類型的表中的列。我想設置謂詞,我只想比較沒有時間的日期。 由於時間的日期我沒有得到正確的結果。NSPredicate:無日期比較日期(目標C)
我當前的代碼 -
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"((install_date > %@) AND (install_date <= %@))", fromDate,toDate]]
我有DATE數據類型的表中的列。我想設置謂詞,我只想比較沒有時間的日期。 由於時間的日期我沒有得到正確的結果。NSPredicate:無日期比較日期(目標C)
我當前的代碼 -
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"((install_date > %@) AND (install_date <= %@))", fromDate,toDate]]
我用這個函數從NSDate的
抽出時間+(NSDate *)dateWithOutTime:(NSDate *)datDate
{
if(datDate == nil) {
datDate = [NSDate date];
}
NSDateComponents* comps = [[NSCalendar currentCalendar] components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:datDate];
return [[NSCalendar currentCalendar] dateFromComponents:comps];
}
我的建議是採取了所有匹配的值,然後通過無比較日期相應進行篩選時間,因爲你不能在沒有時間的情況下取出日期,或者你必須先沒有時間存儲它。
刪除時間日期的更簡單方法 '[[NSCalendar currentCalendar] rangeOfUnit:NSCalendarUnitDay startDate:&日期間隔:NULL forDate:date];'PS:它將日期設置爲一天的開始時間,因此時間設置爲00:00 :00 – Edwin 2015-11-09 17:41:43
如果用戶更改時區設置,則此方法將中斷。 – 2017-02-16 17:59:06
我使用這個解決方案沒有時間在這種情況下,我的日期格式僅比較日期爲yyyy-MM-DD:
NSDateFormatter * formatter = [NSDateFormatter new];
[formatter setDateFormat:@"yyyy-MM-dd"];
NSString * dateString = [formatter stringFromDate:[NSDate date];
NSDate *rdate = [formatter dateFromString:dateString];
NSPredicate *datePre = [NSPredicate predicateWithFormat:@"date = %@", rdate];
什麼是儘快??? – 2013-04-04 06:18:04
asap儘快手段bro – jkk 2013-04-04 06:18:59
@Mak:謝謝,但這不應該是一個禮儀,要求任何幫助。那之後的**意味着什麼?條件適用?這就是我的意思。 **請幫助我。**夠好。 – 2013-04-04 06:21:30