将浮点数转换为时间格式mm:ss

时间:2013-10-31 09:21:55

标签: objective-c datetime nsdate nsdateformatter

我正在寻找一种使用Objective-C的方法将float(audioPlayer.currentTime,例如= 3.4592)转换为带有分钟和秒的时间字符串(03:46)

我试过了:

static NSDateFormatter *date_formatter = nil;
if (date_formatter == nil) {
    date_formatter = [[NSDateFormatter alloc] init];
    [date_formatter setDateFormat:@"mm:ss"];
}
NSDate *diff = [[NSDate alloc] initWithTimeIntervalSinceNow:audioPlayer.currentTime];
NSLog(@"%@", [date_formatter stringFromDate:diff]);

......但那不起作用。格式是正确的,但我找不到正确初始化“差异”日期的方法。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你可以将浮动转换为像这样的秒

    double d = CMTimeGetSeconds(__avPlayer.currentItem.duration);

然后将其转换为NSString以便在下面的方法进行演示可以帮助你

- (NSString *) printSecond:(NSInteger) seconds {

    if (seconds < 60) {
        return [NSString stringWithFormat:@"00:%02d",seconds];
    }

    if (seconds >= 60) {

        int minutes = floor(seconds/60);
        int rseconds = trunc(seconds - minutes * 60);

        return [NSString stringWithFormat:@"%02d:%02d",minutes,rseconds];

    }

    return @"";

}