我想知道是否有人使用按日期排序的NSPredicate
筛选集合,其中日期是NSString
的MMMM dd
(即3月24日)格式(它不是NSDate)。将日期字符串与NSPredicate进行比较
0
A
回答
4
如果您将日期存储为CoreData中的字符串,则谓词很简单。
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"theDate like %@", theDateString];
但我猜测日期被存储为一个NSDate对象。看看使用NSDateFormatter将您的字符串转换为NSDate。
NSDateFormatter* df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MMMM dd"];
NSDate* theDate = [df dateFromString:theDateString];
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"SomeDate >= %@", theDate];
1
您需要首先将其转换为NSDate,您可以使用NSPredicate的predicateWithBlock函数实现该转换。转换对象并在谓词块中对其进行测试。我从来没有亲自使用它,所以这个答案是理论上的。
0
比较NSArray中的NSDate或日期和Swift中的NSPredicate。
在SWIFT 2.1或2.0:
//format data
let Formata_Data = NSDateFormatter()
Formata_Data.calendar = NSCalendar.currentCalendar()
Formata_Data.dateFormat = "dd/MM/yyyy"
let _data_filtro = Formata_Data.stringFromDate(dias_filtros!)
let _data_hoje = Formata_Data.stringFromDate(NSDate())
let data_filtro_ns = Formata_Data.dateFromString(_data_filtro)
print("DATA.... \(_data_filtro)")
var predicate_Data = NSPredicate(block: { (data_string, Orcs) -> Bool in
return data_filtro_ns?.earlierDate(Formata_Data.dateFromString(data_string) as! String)!) == data_filtro_ns
})
var array_filtro_dias = Orcamentos.filteredArrayUsingPredicate(predicate_Data)
Orcamentos = array_filtro_dias
相关问题
- 1. 如何将字符串与日历日期进行比较?
- 2. 如何将日期与JavaScript中的字符串进行比较?
- 3. 如何将日期字符串与当前日期进行比较?
- 4. 将char与字符串进行比较
- 5. 将Arraylist与字符串进行比较
- 6. 字符串与日期字段比较
- 7. 提取字符串并与日期进行比较
- 8. Java:可以将日期作为字符串进行比较
- 9. 将字符串与数组中的字符串进行比较
- 10. 将字符串网址与字符串值进行比较
- 11. 将字符串与其他字符串进行排序比较
- 12. 将数组字符串与字符串进行比较
- 13. NSPredicate在CoreData比较日期
- 14. 如何将字符串与find子句中的日期进行比较?
- 15. 使用javascript,将日期字符串与夏令时进行比较
- 16. 将字符串的字符与字典进行比较python
- 17. 与Extjs进行字符串比较
- 18. 与其他字符串进行比较
- 19. Python - 将字符串与Unicode替换字符进行比较
- 20. 将字符串与字符列表进行比较
- 21. 将字符串与非英文字符进行比较?
- 22. 将当前日期与存储的日期进行比较
- 23. 将sql表中的日期与当前日期进行比较
- 24. 将日期与当前日期进行比较
- 25. Codeigniter:将MySql日期时间与当前日期进行比较
- 26. 将sql日期与php日期进行比较
- 27. Oracle SQL - 将日期与日期范围进行比较
- 28. iPhone - 将字符串与德语变音符号进行比较
- 29. 使用Linq查询将日期与DateTime字段进行比较
- 30. 将数据字段与当前日期进行比较 - Oracle
它存储为字符串。你拥有的谓词不会对它进行排序,它只会发现类似的匹配。我无权访问该字符串,因为我将谓词设置为核心数据获取请求。 – Snowman 2012-03-25 23:58:00
据我所知,在谓词本身中没有办法做到这一点。我猜你必须执行提取请求,然后根据日期字符串手动排序结果。 – tronbabylove 2012-03-26 00:09:59