我有NSString
,其值为@"1:10:39"
将此时间转换为分钟的最快/最方便的方法是什么?例如。 70.65
我不是要求在这里伸出援手,只有在您觉得这样做时才会显示代码。我主要是在寻找推荐。 感谢
答案 0 :(得分:2)
这是一种方式。
NSString *zeroString = @"00:00:00";
NSString *timeString = @"1:10:39";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm:ss"];
NSDate *zeroDate = [dateFormatter dateFromString:zeroString];
NSDate *offsetDate = [dateFormatter dateFromString:timeString];
NSTimeInterval timeDifference = [offsetDate timeIntervalSinceDate:zeroDate];
CGFloat minutes = (timeDifference/60);
NSLog(@"%0.2fmins",minutes);
答案 1 :(得分:1)
我会使用NSString
的{{1}}按顺序获取包含字符串'1','10'和'39'的数组,然后从该数组中提取值并执行{ {1}}将它们转换为数字,然后对它们进行必要的算术运算,确保检查我在数组中确切地得到了三个作为验证步骤并避免异常。
答案 2 :(得分:1)
NSString *timeString = @"1:10:39";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"hh:mm:ss";
NSDate *timeDate = [formatter dateFromString:timeString];
formatter.dateFormat = @"hh";
int hours = [[formatter stringFromDate:timeDate] intValue];
formatter.dateFormat = @"mm";
int minutes = [[formatter stringFromDate:timeDate] intValue];
formatter.dateFormat = @"ss";
int seconds = [[formatter stringFromDate:timeDate] intValue];
float timeInMinutes = hours * 60 + minutes + seconds / 60.0;