【Objective-C】데이터베이스에 보존한 일자와 오늘의 일자를 비교한다【XCode】

NSDate에서 얻은 날짜를 사용자 정의 형식으로 표시하고 싶습니다.
날짜만 비교하고 싶은데 시간이 방해로 잘 안 돼…
그런 상황에 빠졌기 때문에 해결한 방법을 적어 둡니다.
몇 가지 방법이 있다고 생각하지만, 취득한 데이터의 시간은 비교하지 않게 하는 것으로 대처했습니다.

구현


NSDateFormatter *dateFormatter = [NSDateFormatter new];

//GMTとの差を加えない
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

//表示させる形式を指定
[dateFormatter setDateFormat:@"yyyy年MM月dd日"];

//dateFormatterを使い今日の日付を一度文字列にしてからNSDate型にする
NSDate *today = [dateFormatter dateFromString:[dateFormatter stringFromDate:[NSDate date]]];

//データベースにTEXTで保存しておいたdbSampleDateをdateFormatterを使いNSDate型にする
NSDate *formatSampleDate =[dateFormatter dateFromString:dbSampleDate];

//todayとformatSampleDateを比較する
NSComparisonResult result = [today compare : formatSampleDate];


NSLog(@"今日:%@ と 期限日:%@ と 元データ:%@" , today , formatSampleDate , dbSampleDate);
NSLog(@"比較結果:%ld" , (long)result);


-1 = NSOrderedAscending
0  = NSOrderedSame
1  = NSOrderedDescending

그 후에는 result

참고



날짜를 NSComparisonResult로 비교할 때 NSDate에서 시간 부분을 제거합니다.

좋은 웹페이지 즐겨찾기