iPhone中两次的时差

时间:2012-05-04 11:44:58

标签: iphone ipad sqlite date

我有两次:

十点23分51秒
十时31分54秒

这两个值都作为字符串存储在SQLite数据库中。

我希望以hh:mm格式找到这两次之间的差异 我怎么能这样做?

我搜索了很多。但找不到合适的解决方案。 帮帮我。 感谢。

修改: 基本上看我有两个数组:
InTimeArrayOuttimeArray。 现在在viewDidload方法中,我将获取intime数组中IntimeArrayOuttime条目中的所有outtime个条目。

现在我在tableview中逐个传递值,如第一行

 IntimeArray[0]
 OuyTimeArray[0]

第二行:

 IntimeArray[1]
 OuyTimeArray[1]

现在我想用HH:MM格式计算第一行intimeouttime之间的差异。
我真的很困惑。

3 个答案:

答案 0 :(得分:1)

你可以看一下:

-(NSDate *)dateFromString:(NSString *)string
{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormat setLocale:locale];
[dateFormat setDateFormat:@"HH:mm:ss"];

NSDate *date1 = [dateFormat dateFromString:string];  
if(!date1) date1= [NSDate date];
[dateFormat release];
[locale release];

return date1;
}

这会将NSDate转换为您,当您将它们更改为NSDate时,您可以通过查看this来了解其中的差异。

我希望这会对你有帮助..

答案 1 :(得分:1)

您必须先使用此方法将两个字符串更改为日期格式: -

- (NSDate *)dateFromString:(NSString *)string;

之后你只需要计算两个日期之间的秒数。看看它。

还有另一种简单的方法可以做到这一点。即。

首先从这两个数组中获取日期: -

NSDate *eventStartDate = [IntimeArray objectAtIndex:indexpath.row];

NSDate *eventEndDate = [OuyTimeArray objectAtIndex:indexpath.row];

然后计算两个日期之间的差异: -

NSTimeInterval startTimeInterval = [eventStartDate timeIntervalSinceDate:currentDate];

希望它有所帮助谢谢:)

答案 2 :(得分:0)

试试这个:

NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"HH:mm:ss"];

NSDate *d1 = [formatter dateFromString:IntimeArray[0]];
NSDate *d2 = [formatter dateFromString:OuyTimeArray[0]];

NSTimeInterval ti = [d2 timeIntervalSinceDate:d1];
float hours = floor(ti / 3600);
float minutes = floor((ti - hours*3600) / 60);

NSString *s = [NSString stringWithFormat:@"%02.0f:%02.0f",hours,minutes];

对于您的示例,NSLog(@"Time passed: %@",s);将打印00:08