【发布时间】:2013-04-09 17:31:41
【问题描述】:
我有两个字符串来自我存储时间的服务器,我需要比较这两个字符串之间的时间间隔,以分钟为单位,如果有必要,以小时为单位。我应该转换为NSDate 还是使用NSString?
NSStrings 看起来像:
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,请注意时区问题。
标签: ios objective-c nsstring nsdate