我在计时器上得到了nan。我正在计算服务器日期和当前日期的时间间隔。工作正常。但我得到了南而不是时间间隔。在某些对象中,我得到了nan,在某些对象中,它正在返回正确的间隔。
NSDate *date = [NSDate date];
NSLog(@"today %@",date);
NSDateFormatter *df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSString *dt = [df stringFromDate:date];
NSLog(@"dt %@",dt);
NSDate *convertedDate = [df dateFromString:dt];
NSLog(@"cnvrt %@",convertedDate);
NSString *date1 = [ObjectDict valueForKey:@"time"];
NSLog(@"%@",date1);
NSTimeInterval commnetInterval = [convertedDate timeIntervalSinceDate:[df dateFromString:date1]];
NSLog(@"%f timeinterval",commnetInterval);
float minutes = commnetInterval / 60.0;
float hours = minutes / 60.00;
float days = minutes / 1440.0;
NSLog(@"days %f\n hours %f\n min %f",days,hours,minutes);
这是我的日志:
cnvrt 2014-03-06 03:46:42 +0000//current date
2014-03-06 09:16:42.417 BeachImageApplication[2848:a0b] 2014-03-04 16:08:23// date from server
2014-03-06 09:16:42.418 BeachImageApplication[2848:a0b] nan timeinterval
2014-03-06 09:16:42.418 BeachImageApplication[2848:a0b] days nan
hours nan
min nan
答案 0 :(得分:0)
你的问题是双重的。
yyyy-MM-dd HH:mm:ss
,而不是yyyy-MM-dd hh:mm:ss
。[df dateFromString:date1]
返回nil
。将nil
传递给timeIntervalSinceDate:
会导致commnetInterval
成为Nan
。修复日期格式后,代码即可运行。
答案 1 :(得分:0)
您正在使用错误的日期格式格式化日期。它应该是
NSDateFormatter *df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
答案 2 :(得分:-1)
NSDate *lastModified = nil;
NSDate *nowDate = [NSDate date];
NSTimeInterval timeSinceCreate = [nowDate timeIntervalSinceDate:lastModified];
timeSinceCreate
将始终为NaN,尝试检查nowDate
值。