Rounding DateTimes in Cocoa

Let’s see here, what’s the currently supported way to round a datetime to the nearest hour in Cocoa?

// Round the current date to the nearest hour
NSDate * currentDateTime = [NSDate date];
NSCalendar * currentCalendar = [NSCalendar currentCalendar];
NSDateComponents * dateComponents = [currentCalendar components:NSEraCalendarUnit | 
                                                                NSYearCalendarUnit | 
                                                                NSMonthCalendarUnit | 
                                                                NSDayCalendarUnit | 
                                                                NSHourCalendarUnit | 
                                                                NSMinuteCalendarUnit 
                                                       fromDate:currentDateTime];
if ([dateComponents minute] >= 30) 
    [dateComponents setHour:[dateComponents hour] + 1];
[dateComponents setMinute:0];
NSDate * roundedDate = [currentCalendar dateFromComponents:dateComponents];

The API seems a little excessive. I can appreciate what Apple has tried to do in making dates more flexible and easier to internationalize, but should basic manipulation really be that cumbersome?