2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Objective-C】データベースに保存した日付と今日の日付を比較する【XCode】

Posted at

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);

スクリーンショット 2016-08-09 20.53.37.png

-1 = NSOrderedAscending
0  = NSOrderedSame
1  = NSOrderedDescending

あとはresultを煮る(swich)なり焼く(if)なり好きにして〜
##参考
日付をNSComparisonResultで比較するときに、NSDateから時間部分を取り除く

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?