【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];