2017-07-09 4 views
-3

に等しい私はあなたが何を言っていない。このは以上であるか、別の

NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
NSLog(@"%@",[dateFormatter stringFromDate:[NSDate date]]); 
NSString * TodayDate = [dateFormatter stringFromDate:[NSDate date]]; 

if ([displayList.fromTime compare:TodayDate] == NSOrderedDescending) { 
    NSLog(@"date1 is later than date2"); 

} else if ([displayList.toTime compare:date2] == NSOrderedAscending) { 
    NSLog(@"date1 is earlier than date2"); 

} else { 
    NSLog(@"dates are the same"); 

} 

答えて

0

で試してみました (FROM_DATE> =今日& &今日= < TOTIME)場合は2日付 を比較オブジェクトfromDateのクラスですが、それは文字列であるTodayDateと比較しているので、それらを比較すると、あなたの日付のすべてが文字列であると仮定していますか?もしそうなら、それは悪い選択です。日付比較と文字列比較は同じではなく、異なる結果をもたらします。

今日の日付を文字列に変換する代わりに、日付をNSDateに変換して比較する必要があります。

OTOH、fromDateが文字列でない場合、それはエラーです。 2つのオブジェクトが同じテキストをNSLoggedにしているからといって、それらが同じ型であり、比較できるというわけではないので、それらがすべて同じ型(NSDate)であることを確認し、それらを比較してください。

0

あなたはNSStringを間違って比較することができます。 2つのNSDateオブジェクトを比較する必要があります。ここで

は更新コードです:

NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 

    // You are doing wrong compareing at here. You need to compare Date nor sting. 
// NSString * TodayDate = [dateFormatter stringFromDate:[NSDate date]]; 

    NSDate *TodayDate = [NSDate date]; 
    NSDate *compareData = [dateFormatter dateFromString:@"2017-07-09 11:12:11"]; 

    if ([compareData compare:TodayDate] == NSOrderedDescending) { 
     NSLog(@"date1 is later than date2"); 

    } else if ([compareData compare:TodayDate] == NSOrderedAscending) { 
     NSLog(@"date1 is earlier than date2"); 

    } else { 
     NSLog(@"dates are the same"); 

    } 
+0

それは日が同じであり、時間が先行しているならば、それはNSOrderedDescendingを返しますので、それは、日付と時刻の両方を取るよりも大きいを行うか –

+0

をequallすることが可能です。それでうまくいく。 – Nirmalsinh

+0

@ManjuSSPはあなたのために働いていますか? – Nirmalsinh

関連する問題