dar*_*man 0 objective-c nsdate nsstring ios
我有两个来自服务器的字符串,用于存储时间,我需要比较这两个字符串之间的时间间隔(以分钟为单位,必要时以小时为单位)。我应该转换NSDate还是使用NSString?
该NSString看看这样的:
NOW 14:22
LAST TIME 10:18
Run Code Online (Sandbox Code Playgroud)
编辑#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]);
Run Code Online (Sandbox Code Playgroud)
结果如下:
Difference 864.000000
NOW 2013-04-09 15:24:42 +0000
LAST DATE 2013-04-09 12:10:18
Run Code Online (Sandbox Code Playgroud)
那是对的吗?差异以秒为单位?
如果格式比显示的格式复杂,请考虑使用NSDateFormatter。对于简单的示例:
NSArray *hoursMins = [timeString componentsSeparatedByString:@":"];
NSInteger timeInMins = [hoursMins[0] intValue] * 60 + [hoursMins[1] intValue];
Run Code Online (Sandbox Code Playgroud)
然后在几分钟内减去两次。日期格式器方法如下所示:
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"HH:mm"];
NSDate *date = [df dateFromString:timeString];
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令在两个日期之间以秒为单位进行区别:
[date timerIntervalSinceDate:anotherDate];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3073 次 |
| 最近记录: |