所以我想在两个日期之间为每个月创建一个对象..
开始时间:01/08/2012
结束:02/10/2012
将是两个月,所以我愿意列出:
01/09/2012 01/10/2012
..准备让我为每个推送到Parse(.com)的人创建一个NSDate ..
这是我到目前为止所得到的:
NSString *start = @"2010-09-15";
NSString *end = @"2011-07-15";
NSDateFormatter *f = [[NSDateFormatter alloc] init];
[f setDateFormat:@"yyyy-MM-dd"];
NSDate *startDate = [f dateFromString:start];
NSDate *endDate = [f dateFromString:end];
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorianCalendar components:NSMonthCalendarUnit
fromDate:startDate
toDate:endDate
options:0];
int i=0;
for (i = 0; i < [components month]; i++)
{
NSLog(@"%i", i+1);
NSDateFormatter *df = [NSDateFormatter new];
// change locale if the standard is not what you want
NSArray *monthNames = [df standaloneMonthSymbols];
NSString *monthName = [monthNames objectAtIndex:(i)];
NSLog(@"Month name: %@", monthName);
}
感谢您的帮助!
答案 0 :(得分:0)
你有正确的想法。您有代码将开始日期字符串转换为NSDate,并计算两个日期之间的月数。大概你要发送到parse.com的是相同格式的日期字符串,对吗?
让我们调用开始日期和结束日期monthCount之间的月份数。
在这种情况下,在for循环中,您应该使用NSCalendar方法dateByAddingComponents:toDate:options:
添加0 - &gt; monthCount到日期,然后使用日期格式化程序的stringFromDate方法将该日期转换为日期字符串。