当前位置: 首页 > 面试题库 >

核心数据谓词按今天的日期过滤

田权
2023-03-14
问题内容

我对此有疑问,因此没有找到正确的答案,因此在这里我将留下一个小教程。

目标是按今天的日期过滤获取的对象。

注意:它与Swift 3兼容。


问题答案:

您不能简单地将您的日期与今天的日期进行比较:

let today = Date()
let datePredicate = NSPredicate(format: "%K == %@", #keyPath(ModelType.date), today)

它不会显示任何内容,因为您的日期不太可能是精确的比较日期(也包括秒和毫秒)

解决方法是这样的:

// Get the current calendar with local time zone
var calendar = Calendar.current
calendar.timeZone = NSTimeZone.local

// Get today's beginning & end
let dateFrom = calendar.startOfDay(for: Date()) // eg. 2016-10-10 00:00:00
let dateTo = calendar.date(byAdding: .day, value: 1, to: dateFrom)
// Note: Times are printed in UTC. Depending on where you live it won't print 00:00:00 but it will work with UTC times which can be converted to local time

// Set predicate as date being today's date
let fromPredicate = NSPredicate(format: "%@ >= %@", date as NSDate, dateFrom as NSDate)
let toPredicate = NSPredicate(format: "%@ < %@", date as NSDate, dateTo as NSDate)
let datePredicate = NSCompoundPredicate(andPredicateWithSubpredicates: [fromPredicate, toPredicate])
fetchRequest.predicate = datePredicate

到目前为止,这是仅显示具有当前日期的对象的最简单,最短的方法。



 类似资料:
  • 获取今天的日期(年、月、日) 用法 Your browser does not support the video tag. 案例:小闹钟 功能:2019年12月25日,播放圣诞快乐歌

  • 问题内容: 我已经编写了一些代码来检查两个日期,即开始日期和结束日期。如果结束日期早于开始日期,则会提示您结束日期早于开始日期。 我还想添加检查开始日期是否在今天之前(今天和用户使用该应用程序的那天一样)。(下面的日期检查器代码,如果有任何影响,那么所有这些都为Android编写) 问题答案: 这有帮助吗?

  • 将给出今天的日期 1月、4月、7月、10月=1 2月、5月、8月、11月=2 3月、6月、9月、12月=3 应该打印。例如:12月是季度的第三个月,所以答案是3。对此有更好的解决方案吗?

  • 问题内容: 我有此查询以获取月结果。但是我想得到今天的结果。 做这个的最好方式是什么? 问题答案: 您的开始日期对象应将当前日期时间设置为(毫秒精度),并将今天的时间设置为: 然后像往常一样在您的MongoDB查询运算符中传递修改后的日期对象: 如果您正在使用 momentjs 库,则可以通过在当前当前日期对象上使用 and 方法,并将字符串作为参数传递来实现:

  • 在GoogleSheets中,当a列中的日期等于或早于今天的日期时,我需要一个脚本来自动隐藏工作表1中的行。 因此,如果今天是2018年8月29日,单元格A3中的日期是2018年8月28日,则第3行的所有内容都将隐藏 但是如果A3单元格中的日期是2018年8月30日,那么所有第3行都将是可见的,直到当前日期是2018年8月31日。 谢谢你能提供的任何帮助。 我一直在使用这段代码,我发现它隐藏了行,

  • 我不确定这是否可能? 我得拿到密码才能读 今天的月份即2月今天的日期即17月底的日期即31日,然后是一年中的其他11个月,在一行中按顺序排列 8月1日-31日|9月|10月|11月|12月|1月|2月|3月|4月|5月|6月|7月 请以最佳方式提供任何建议? 多谢 定时(timing的缩写)