2013-10-12 142 views
3

我试图从当前日期获得一个月。iOS距离当前日期一个月。

下面是我有,它是返回:4027-09-24 16:59:00 +0000。 currentDate是正确的。这是怎么回事?

// Get todays date to set the monthly subscription expiration date 
NSDate *currentDate = [NSDate date]; 
NSLog(@"Current Date = %@", currentDate); 
NSDateComponents *dateComponents = [[NSCalendar currentCalendar] components:NSMonthCalendarUnit | NSDayCalendarUnit | NSYearCalendarUnit fromDate:currentDate]; 
dateComponents.month = dateComponents.month + 1; 
NSDate *currentDatePlus1Month = [[NSCalendar currentCalendar] dateByAddingComponents:dateComponents toDate:currentDate options:0]; 
NSLog(@"Date = %@", currentDatePlus1Month); 
+0

你的代码*增加*2013年,11个月......为当前日期。 –

回答

12

试试这个:

// Get todays date to set the monthly subscription expiration date 
NSDate *currentDate = [NSDate date]; 
NSLog(@"Current Date = %@", currentDate); 

NSDateComponents *dateComponents = [NSDateComponents new]; 
dateComponents.month = 1; 

NSDate *currentDatePlus1Month = [[NSCalendar currentCalendar] dateByAddingComponents:dateComponents toDate:currentDate options:0]; 
NSLog(@"Date = %@", currentDatePlus1Month); 
+0

谢谢兄弟,就是这样! –

-1
NSDate *currentDate = [NSDate date]; 

NSCalendar* calendar = [NSCalendar currentCalendar]; 

NSDateComponents* components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:currentDate]; 
    // Get necessary date components 

[components month]; //gives you month 

[components day]; //gives you day 

[components year]; //gives you year 
相关问题