おとうさまくんの手作り工房

日曜大工としてのプログラミングを紹介します。

【iOS備忘録】 今日の日付を取得し、文字列に変換する

簡単なことのようだけど、NSDateFormatterを使う辺りが、なかなか思いつかなかったりするのでメモ。

1.日付を文字列にする

 現在日時から 2014.11.25 という日付の文字列を取得するには・・・

 

    NSDate *nowdate = [NSDate date];

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

    [formatter setDateFormat:@"yyyy.MM.dd"];

    NSString *date2 = [formatter stringFromDate:nowdate];

 

 

 時間も取得する場合は

    [formatter setDateFormat:@"yyyy.MM.dd HH:mm:ss"];

 

2.文字列を日付(NSDate)のデータにする

 文字列のままだと比較したり、差をとったり出来ないので、必要とあらばNSDateに変換しておきましょう。1.とほとんど一緒ですよ〜。

 

    NSString *string = @"2014.11.25 20:05:14";

    NSDateFormatter *formatter = [[NSDateFormatteralloc] init];

    formatter.dateFormat = @"yyyy.MM.dd HH:mm:ss";

    NSDate *date = [formatter dateFromString:string];

 

3.日時を比較する

    NSDate *date1,*date2;

 

    NSComparisonResult result = [date1 compare:date2];

    if ( result == NSOrderedSame ) {

        //date1==date2

    }else if( result == NSOrderedAscending ){

        //date1 < date2

    }else if( result == NSOrderedDescending ){

        //date1 > date2

    }

 

4.日時の差を取る

 差date2-date1をsecに代入する。

 

    NSDate *date1,*date2;

    NSTimeInterval sec = [date2 timeIntervalSinceDate:date1];