我有两个字符串来自我的服务器,其中存储了时间,我需要比较两者之间的时间间隔(以分钟为单位),如果需要,则以小时。我应该转换为NSDate
还是使用NSString
?获取目标C中两个NSString之间的差异时间
的NSString
看看这样的:
NOW 14:22
LAST TIME 10:18
编辑#1 因为每个人都在说我使用NSDate的,我转换的数据在我的数据库,以DATETIME,现在我可以使用两个NSDate的比较下面的代码:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"pt_BR"]];
[dateFormatter setDateFormat: @"yyyy-MM-dd HH:mm:ss"];
NSDate *currentDateTimeWithOffset = [NSDate dateWithTimeIntervalSinceNow:[[NSTimeZone localTimeZone] secondsFromGMT]];
NSString *strDate = [dateFormatter stringFromDate:currentDateTimeWithOffset];
NSDate * now = [dateFormatter dateFromString:strDate];
NSDate *date = [dateFormatter dateFromString:@"2013-04-09 12:10:18"];
NSLog(@"Difference %f",[now timeIntervalSinceDate:date]);
而结果是:
Difference 864.000000
NOW 2013-04-09 15:24:42 +0000
LAST DATE 2013-04-09 12:10:18
这是正确的吗?差异在几秒钟内?
您有大约5个不同的选项。最简单的是自己破解格式。或者你可以使用NSDateFormatter,有或没有NSCalendar。如果你等待足够长的时间,有人可能会提出一个正则表达式版本。如果您使用NSDateFormatter/NSCalendar,请注意时区陷阱。 – 2013-04-09 17:35:09