2

標準フレームワークは時差フォーマットをサポートし、地域設定に従ったフォーマットを作成しますか? NSDateComponents に分割できることはわかっていますが、テキストを追加して別の言語サポート ファイルを自分で作成する必要があります。日付をフォーマットして、これに似た単純な地域設定に従う方法があるのではないかと思っています...

dateFormat = [[[NSDateFormatter alloc] init] autorelease]; [dateFormat setDateStyle:NSDateFormatterMediumStyle]

ありがとう

4

1 に答える 1

6

次のようにして、相対日付形式を有効にすることができます。

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];
}
于 2011-12-23T10:03:11.590 に答える