日付フォーマッターに問題があります。2つの日付を比較したいのですが、両方を同じ形式にした後、日付はゼロになります。
compareDateNowString = 2014-05-24 19:03:39 +0000
compareDateFininshString = 2014-05-24 18:30:24 +0000
NSDateFormatter *compareFormatter = [[NSDateFormatter alloc]init ];
[compareFormatter setDateFormat:@"dd-MM-yyyy HH.mm"];
NSString *compareDateNowString = [NSString stringWithFormat:@"%@", [NSDate date]];
NSDate *compareDateNow = [compareFormatter dateFromString:compareDateNowString];
NSString *compareDateFinishString = [NSString stringWithFormat:@"%@", [device valueForKey:@"finishDate"]];
NSDate *compareDateFinish = [compareFormatter dateFromString:compareDateFinishString];
NSComparisonResult result = [compareDateNow compare:compareDateFinish];
if(result==NSOrderedAscending)
{
cell.backgroundColor = [UIColor colorWithRed:0.0 green:255.0 blue:0.0 alpha:0.5];
}
else if(result==NSOrderedDescending)
{
cell.backgroundColor = [UIColor colorWithRed:255.0 green:0.0 blue:0.0 alpha:0.5];
}
else
{
NSLog(@"Both dates are the same");
}
代わりにのdateFormat
文字列を使用してください@"yyyy-MM-dd HH:mm:ss Z"
。あなたは、dateFormat
あなたが変換しようとしている文字列の形式と一致していません。
ちなみに、[NSDate date]
文字列に変換して元に戻す意味はありません。使用して[NSDate date]
、それで済ませてください。
NSDate *compareDateNow = [NSDate date];
NSComparisonResult result = [compareDateNow compare:compareDateFinish];
同じことが[device valueForKey:@"finishDate"]
。にも当てはまる可能性があります。それがすでにNSDate
オブジェクトである場合は、それを使用して、フォーマッターを完全にバイパスします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加