NSPredicate通过时间间隔获取日期

问题描述:

我需要能够获得的日期阵列5分钟间隔,10分钟间隔,每日,每月和每年的间隔为一个股票。到目前为止,我只能说出这个谓词,但我不确定我如何继续实现区间。NSPredicate通过时间间隔获取日期

var datetime = "2014-07-14T09:00:00:+08:000" 
quoteArray = Quote.objectsWhere("date >= %@",datetime) 
+1

请说明你的自我更好,描述你想得到什么 – shannoga

+0

例如,我需要得到1年的日期与日期数组的月间隔,但我不知道如何实现这一点 –

+0

要获取所有日期之间日期(例如2015年1月和2015年2月),您必须执行'date> = dateJan2015和date Larme

如果给定日期,您想要生成接下来的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)除非给定的日期时间。

如果您正在过滤或汇总数据并将其分配给间隔,则这是一个不同的问题。