如何从当前日期iphone / ipad找到第3天的日期

时间:2010-11-11 11:47:45

标签: iphone ipad datetime

任何人都可以告诉我如何从当前日期iphone / ipad找到第3天的日期。

提前致谢

6 个答案:

答案 0 :(得分:5)

您可以使用:

NSDate *today = [[NSDate alloc] init];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setDay:3];
NSDate *threeDaysFromToday = [gregorian dateByAddingComponents:offsetComponents toDate:today options:0];

来自Apple's own documentation on NSDate的略微修改的示例。查看链接以获取更多信息和更多示例。

答案 1 :(得分:0)

NSDate *today = [NSDate date];
NSTimeInterval threeDays = 86400*3;

NSDate *threeDaysFromToday = [NSDate dateWithTimeInterval:threeDays sinceDate:today];

答案 2 :(得分:0)

类似的东西:

// get the gregorian calendar ready to go; use the getter for the current system
// calendar if you're happy to deal with other calendars too
NSCalendar *gregorianCalendar = [[NSCalendar alloc]
                                initWithCalendarIdentifier: NSGregorianCalendar];

// get an NSDate object that is three days in the future
NSDate *dateInFuture = [NSDate dateWithTimeIntervalSinceNow:3*24*60*60];

// grab the date components for the bits we want to print in this example
NSDateComponents *componentsOfDateInFuture = 
       [gregorianCalendar
        components:NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit
          fromDate:dateInFuture];

// and print
NSLog(@"in three days it'll be %04d/%02d/%02d", 
           componentsOfDateInFuture.year,
           componentsOfDateInFuture.month, 
           componentsOfDateInFuture.day);

// clean up
[gregorianCalendar release];
编辑:考虑到夏令时问题,Pablo Santa Cruz的答案更有利于确保您在未来三天。这就是你如何将NSDate分解为日/月/年,以获得日期而不仅仅是NSDate。

答案 3 :(得分:0)

选择一个:

NSDate *futureDate;
NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease];
[components setDay:3];
futureDate = [[NSCalendar currentCalendar] dateByAddingComponents:components toDate:[NSDate date] options:0];
NSLog(@"%@ - %@", [NSDate date], futureDate);



NSDate *futureDate = [[NSDate date] dateByAddingTimeInterval:3 * (24*60*60)];

答案 4 :(得分:0)

[NSDate dateWithTimeIntervalSinceNow:86400*3]

但正如上面提到的那样,DST可能会使这个太不准确。取决于它的重要性。

答案 5 :(得分:0)

以下是示例代码

    NSDate  * currentDate=[NSDate date];
NSTimeInterval interval=[currentDate timeIntervalSince1970];
NSTimeInterval intervalForThirdDate=interval+86400*3;
NSDate *nextDate=[[NSDate alloc]initWithTimeIntervalSince1970:intervalForThirdDate];