我在一个数组中有一堆NSDates。我需要生成一个函数,使每个日期成为一个数字(一个6小时的窗口),如下所示:
Sept 17, 2014 12:00am to 5:59am = 2014-09-17-1
Sept 17, 2014 6:00am to 12:00pm = 2014-09-17-2
Sept 17, 2014 12:01pm to 6:00pm = 2014-09-17-3
Sept 17, 2014 6:01pm to 12:00pm = 2014-09-17-4
Sept 17, 2018 12:00am to 5:59am = 2014-09-18-1
我想传递一个日期并将第一部分的号码取回。对于第2部分,我想从2次或12小时前得到这个数字?
有什么想法吗?
答案 0 :(得分:0)
您应该结帐NSCalendar和NSDateComponents。通常,您使用NSCalendar从NSDate创建NSDateComponents。这将给你几小时,几天,几年,几个月,几秒钟作为好整数。然后,您可以使用这些值对它们进行分组。
例如:
NSDate * someDate = [NSDate date];
NSCalendar * gregorian = [NSCalendar alloc] initWithCalendatIdentifier: NSGregorianCalenar];
NSDateComponenets * components = [gregorian components: NSDayCalendarUnit | NSHourCalendarUnit fromDate: someDate];
您可以使用dateComponents获取小时和天数,其上的所有其他属性均无效。如果需要更多,还需要在组件参数中指定这些单位:fromData;。