ios时间到int分钟

时间:2012-02-15 23:50:57

标签: ios

我有NSString,其值为@"1:10:39"

将此时间转换为分钟的最快/最方便的方法是什么?例如。 70.65

我不是要求在这里伸出援手,只有在您觉得这样做时才会显示代码。我主要是在寻找推荐。 感谢

3 个答案:

答案 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;