2

この方法で NSDate カテゴリを使用して文字列を生成しようとしています:

NSString* dateString = nil;
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setLocale:[NSLocal currentLocale]];
[dateFormat setDateFormat:@"dd LLL YYYY"];
dateString = [dateFormat stringFromDate:self];
return dateString;

1 つのケース (デバッグ セッションを報告します) を除いて、変換は正常に機能します: 次のように NSDate オブジェクトを変換しようとすると:

(gdb) po self
2012-01-01 00:00:00 +0000

私は得る:

(gdb) po dateString
01 Jan 2011

なぜ年が2011年に戻るのですか????

PS。NSDate が間違った年を返すことを既に確認しており、和暦を使用していません。

どうもありがとう

4

1 に答える 1

2

これを試して:

     NSDate *pickerDate = [NSDate date];
     NSCalendar*       calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
     NSDateComponents* components = [[[NSDateComponents alloc] init] autorelease];
        components.day = 0; //This value to take from today to next 1 or 2 or 3 days
        NSDate* newDate = [calendar dateByAddingComponents: components toDate: pickerDate options: 0];
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"dd-MMMM"];
        NSString *textDate = [NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:newDate]];
        [dateFormatter release];
于 2012-05-09T16:08:11.767 に答える