次のようにして、相対日付形式を有効にすることができます。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.doesRelativeDateFormatting = YES;
これにより、「昨日」、「今日」、「明日」などの日付文字列が得られます。
それだけでは不十分な場合は、これが役立つかもしれません: http://zetetic.net/code/nsdate-helper
その NSDate カテゴリは、私が望んでいたものにはうまく機能しなかったので、カテゴリにあったものに基づいて独自の関数を追加しました..動作するようですが、保証はありません;)もちろん、これはほんの少しの情報しか提供しません-ロケールのフォーマットなどは提供しません。
- (NSUInteger)daysAgoAgainstMidnight2 {
// get a midnight version of ourself:
NSDateFormatter *mdf = [[NSDateFormatter alloc] init];
[mdf setDateFormat:@"yyyy-MM-dd"];
NSDate *midnightMe = [mdf dateFromString:[mdf stringFromDate:self]];
NSDate *midnightNow = [mdf dateFromString:[mdf stringFromDate:[NSDate date]]];
NSDateComponents *components = [calendar components:(NSDayCalendarUnit)
fromDate:midnightMe toDate:midnightNow
options:0];
return [components day];
}