繁体   English   中英

仅按日期时间/日期选择器按日期筛选

[英]Filter by date only from datetime/datepicker in swift

我在表单中使用日期时间选择器,并将以下数据插入到核心数据实体(属性)

   `appointment.date = appointmentDate.date //it is getting date as well and time
    appointment.title = "Appointment"
    do {
        try managedObjectContext.save()`

在另一个viewcontroller中,我这样做是根据日期过滤记录。 我有一个返回日期的日历。

    let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Appointment")
    let sortDescriptor = NSSortDescriptor(key: "date", ascending: true)
    fetchRequest.sortDescriptors = [sortDescriptor]
    let predicate = NSPredicate(format: "date = %@", calendar.selectedDate! as NSDate)
    fetchRequest.predicate = predicate  

尝试仅按日期(忽略时间)进行过滤,但它不起作用(不显示任何内容)。如果删除谓词,则显示所有记录。

正确的方法是什么?我在哪里做错了? 是格式问题吗?

如果要过滤所选日期中的记录,则必须应用带有开始和结束日期的谓词

let startDate = Calendar.current.startOfDay(for: calendar.selectedDate)
let endDate = Calendar.current.date(byAdding: .day, value: 1, to: startDate)
let predicate = NSPredicate(format: "date >= %@ AND date < %@", startDate as NSDate, endDate as NSDate)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM