2012-02-15 48 views
0

我与价值@"1:10:39"IOS时间为int分钟

什么是这个时候分钟转换最快/最便捷的方式的NSString?例如。 70.65

我并不是要求在这里发表意见,只有在您感觉舒适时才显示代码。我主要在寻找一个建议。 谢谢

回答

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); 
+0

+1对所有人都是好的和可用的。不过,我从来没有这样计算时间,所以得到了奖品。谢谢! – Jacksonkr 2012-02-16 00:38:50

+0

不客气。干杯! – JacobFennell 2012-02-16 00:43:44

1

我会使用NSStringcomponentsSeparatedByString使包含字符串的数组‘1’,‘10’和‘39’的顺序,然后从该阵列拉的值并对其执行integerValue转换为数字,并对这些进行必要的算术运算,确保检查数组中正好有三件事作为验证步骤并避免异常。

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;