NSPredicate通过时间间隔获取日期
问题描述:
我需要能够获得的日期阵列5分钟间隔,10分钟间隔,每日,每月和每年的间隔为一个股票。到目前为止,我只能说出这个谓词,但我不确定我如何继续实现区间。NSPredicate通过时间间隔获取日期
var datetime = "2014-07-14T09:00:00:+08:000"
quoteArray = Quote.objectsWhere("date >= %@",datetime)
答
如果给定日期,您想要生成接下来的12个月的日期,那么使用NSCalendar。使用了游乐场。
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'hh:mm:ss:Z"
var ds = "2014-07-14T09:00:00:+0000"
var dt = formatter.dateFromString(ds)
print(formatter.stringFromDate(dt!)) // just show what we have.
let calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)
var monthDates = [NSDate]()
for i in 1...12 {
let month = calendar?.dateByAddingUnit(NSCalendarUnit.Month, value: i, toDate: dt!, options: NSCalendarOptions.MatchStrictly)
print(month!)
monthDates.append(month!)
}
请注意,这些将相隔一个月,但不一定在美好的日期或月份边界。
要获得价值10个分钟间隔24小时,以指定的日期时间:
var min10Intervals = [NSDate]()
for i in 1..144 {
let tenMinute = calendar?.dateByAddingUnit(NSCalendarUnit.Minute, value: i*10, toDate: dt!, options: NSCalendarOptions.MatchStrictly)
min10Intervals.append(tenMinute!)
}
注意,这些将在10分钟的间隔,但不一定很好10分钟边界(如11:10)除非给定的日期时间。
如果您正在过滤或汇总数据并将其分配给间隔,则这是一个不同的问题。
请说明你的自我更好,描述你想得到什么 – shannoga
例如,我需要得到1年的日期与日期数组的月间隔,但我不知道如何实现这一点 –
要获取所有日期之间日期(例如2015年1月和2015年2月),您必须执行'date> = dateJan2015和date Larme