将持续时间添加到NSDate

时间:2013-06-02 05:02:58

标签: ios datetime ios6 nsdate

如何为日期时间添加持续时间。例如30分钟。

 NSString *str = @"31-06-2013 11:45 pm";

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

 [dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm a"];
 NSDate *startTime = [dateFormatter dateFromString: str];
 NSDate *endTime = [startTime dateByAddingTimeInterval:60 * 30];

输出显示 31-06-2013 11:45 pm 但是正确的应该 01-06-2013 12:15 am

1 个答案:

答案 0 :(得分:0)

正如许多人所指出的那样,这是一个重复的问题,尽管日期的组成部分不同。这是一个很好的方法来调整日期的分钟组成部分。

    NSCalendar*       calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
    NSDateComponents *c = [[[NSDateComponents alloc] init] autorelease];
    c.minute = 30;
    NSDate* endTime = [calendar dateByAddingComponents:c toDate:startTime options:0];
    NSString* formattedDateString = [dateFormatter stringFromDate:endTime];