2014-03-06 119 views
1

我越来越nanitervalue。我正在计算服务器日期和当前日期的时间间隔。工作正常。但是我得到了nan而不是时间间隔。在某些对象中,我正在获取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

你确定'[df dateFromString:date1]'返回一个有效的'NSDate'吗?它的价值是什么? – bneely

+2

为什么你将[NSDate date]转换为String dt,然后将String dt转换为NSDate convertedDate? –

回答

0

你的问题是双重的。

  1. 您的日期格式必须是yyyy-MM-dd HH:mm:ss而不是yyyy-MM-dd hh:mm:ss
  2. 使用错误的格式会导致[df dateFromString:date1]返回nil。并通过niltimeIntervalSinceDate:结果commnetIntervalNan

一旦您修复日期格式,代码将工作。

0

您正在格式化日期格式错误的日期。它应该是

NSDateFormatter *df = [[NSDateFormatter alloc]init]; 
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
-1
NSDate *lastModified = nil; 
NSDate *nowDate = [NSDate date]; 
NSTimeInterval timeSinceCreate = [nowDate timeIntervalSinceDate:lastModified]; 

timeSinceCreate将始终为NaN,尝试检查nowDate值。