如何从8月02日到9月2日获取日期

时间:2011-08-02 07:41:49

标签: iphone objective-c

打印当前日期。下面。

是否有任何方法从8月2日到9月2日提供日期。

 NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd"];
    NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
    NSLog(@"%@",dateString);

3 个答案:

答案 0 :(得分:2)

NSDateComponents *comps = [[NSDateComponents alloc] init];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd"];


int nrOfDays = 30;

for(int i = 0; i<=nrOfDays; i++){
    [comps setDay:i];
    NSDate *date = [gregorian dateFromComponents:comps];

    NSString *dateString = [dateFormatter stringFromDate:date];
    NSLog(@"%@",dateString);
}
[dateFormatter release];
[gregorian release];
[comps release];

我不是100%肯定,但我认为这会奏效。可能是一些语法错误,因为我没有尝试过,目前无法访问xcode。

答案 1 :(得分:0)

Date and Time Programming Guide中有关于日历计算的整个部分。

重要的是使用日期组件而不是尝试将秒添加到一天。

如果日期跨度不同怎么办?如果夏令时进入/停止运行怎么办?操作NSDateComponents时会考虑这些事情,如果你只是添加几秒就会很脆弱。

答案 2 :(得分:-1)

使用[NSDate dateSinceTimeInterval:(NSTimeInterval)]

NSTimeInterval位于secs,所以24小时后会86400secs

运行for循环并通过添加timeInterval

创建一个新日期

NSDate *newDate = [NSDate dateSinceTimeInterval:(NSTimeInterval)]