我有以下方法将持续时间(以秒为单位)格式化为格式为@" mm:ss"的字符串。只要输入特定值60,此方法就会出现意外情况:
方法:
+ (NSString *)formatDuration:(NSTimeInterval)duration
{
NSDateFormatter *durationFormatter = [[NSDateFormatter alloc] init];
[durationFormatter setDateFormat:@"mm:ss"];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *zeroComponents = [[NSDateComponents alloc] init];
zeroComponents.hour = 0;
zeroComponents.minute = 0;
zeroComponents.second = 0;
NSDate *zeroDate = [calendar dateFromComponents:zeroComponents];
[zeroComponents release];
NSDate *endDate = [NSDate dateWithTimeInterval:duration sinceDate:zeroDate];
return [[durationFormatter autorelease] stringFromDate:endDate];
}