ios - 获取音频持续时间字符串的浮点值

标签 ios objective-c

{
     duration = "00:06:29";
     id = 7;
}

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
    numberFormatter.numberStyle = NSNumberFormatterDecimalStyle;

float value = [numberFormatter numberFromString:currentAutio.duration].floatValue;
NSLog(@"Current audio %f",value);

输出是当前音频0.0000

如何将持续时间字符串转换为浮点值?

最佳答案

最简单的方法是

NSString *duration = @"00:06:29";
NSArray *array = [duration componentsSeparatedByString:@":"];

NSLog(@"Current hrs %ld",(long)[(NSString *)(array[0]) integerValue]);
NSLog(@"Current min %ld",(long)[(NSString *)(array[1]) integerValue]);
NSLog(@"Current sec %ld",(long)[(NSString *)(array[2]) integerValue]);

否则,您也可以使用 NSDateNSDateFormatter

编辑


使用NSDate,请注意小时部分不应超过 23,否则结果可能不符合预期。

NSString *duration = @"00:06:29";

NSDateFormatter *formatter = [NSDateFormatter new];
formatter.dateFormat = @"HH:mm:ss";

NSDate *date = [formatter dateFromString:duration];

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond fromDate:date];
NSLog(@"hrs %ld", (long)components.hour);
NSLog(@"min %ld", (long)components.minute);
NSLog(@"sec %ld", (long)components.second);

关于ios - 获取音频持续时间字符串的浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41329321/

相关文章:

objective-c - 父类(super class)/子类的调试/发布构建差异

ios - iPhone模拟器无法打开(localhost)http://127.0.0.1:8000/foo/bar/

html - 带有 block 引号的 html 中的 NSAttributedString

ios - 异步绘图和触摸

iphone - 在 iOS 中设置 unicode 字符宽度

iphone - 将评论与 Facebook iOS SDK (iPhone) 集成

ios - Tableview 忘记了 UISegmentedControl 中的 selectedSegment?

ios - 在 iOS 应用程序中获取 WAN IP

ios - UITableView 部分周围的边框

ios - @synchronized 参数具有相同的值但不同的引用?