Objective-C NSDateを使って日付を扱う


スポンサーリンク

Objective-Cで日付を管理するのはNSDateクラスです。
Javaのnew Dateみたいに、インスタンスを作った時に現在時刻のデータが入ってきます。

今回はNSDateのメソッドを使って、以下の処理(メソッド)をみていきます。

  • 日付を文字列にして返す
  • 指定した文字列から時刻データを生成する
  • 指定した文字列から時刻データを生成する
  • 日付と時刻を比較して、古い方の日付を返す
  • 日付と時刻を比較して、新しい方の日付を返す
  • 同じ日付と日時であるか調べ、BOOL型で返す


結果はコメントにして、NSLogの横に書いています。

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        //日付を文字列にする
        NSDate *date = [[NSDate alloc] init];
        NSLog(@"%@",[date description]); //2014-09-24 13:15:50 +0000
        
        //指定した文字列の時刻データの生成する
        NSDate *date2 = [[NSDate alloc] initWithString:@"2014-07-07 10:00:00 +0000"];
        NSLog(@"%@",[date2 description]); //2014-07-07 10:00:00 +0000
        
        //日付と時刻を比較して、古い方の日付を返す
        NSDate *early = [date earlierDate: date2];
        NSLog(@"%@",early); //2014-07-07 10:00:00 +0000
        
        //日付と時刻を比較して、新しい方の日付を返す
        NSDate *later = [date laterDate: date2];
        NSLog(@"%@",later); //2014-09-24 13:15:50 +0000
        
        //同じ日付と日時であるか調べ、BOOL型で返す
        BOOL *isEqual = [date isEqualToDate: date2];
        NSLog(@"equal? 1:yes,0:no ... %d",isEqual); //equal? 1:yes,0:no ... 0
        
        //不安だからもう一度、今度は等しいパターンで
        BOOL *isEqual2 = [date isEqualToDate: date];
        NSLog(@"equal? 1:yes,0:no ... %d",isEqual2); //equal? 1:yes,0:no ... 1
        
        
    }
    return 0;
}

以上です。