1

日付を増やして毎月フォーマットされた出力を取得しようとしています...正常に機能しますが、2010年12月から2011年1月までのステップは機能しません。これを見てください:

NSCalendar *gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDate *lastDate = [[NSDate alloc] init];

for (int i = 0; i < 12; i++) {
    NSDateComponents *offsetComponents = [[[NSDateComponents alloc] init] autorelease];
    [offsetComponents setMonth: 1];
    lastDate = [[gregorian dateByAddingComponents:offsetComponents toDate: lastDate options:0] retain];


    NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    [dateFormatter setTimeStyle:NSDateFormatterNoStyle];
    [dateFormatter setDateFormat:@"MMMM YYYY"];

    NSLocale *locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease];
    [dateFormatter setLocale:locale];

    NSLog(@"%d: Fromatted Date: %@ from : %@", i, [dateFormatter stringFromDate:lastDate], lastDate);
}

デバッグ出力:[セッションは2010-07-01 11:05:18+0200に開始されました。]0:開始日:2010年8月から:2010-08-01 11:05:19 +0200

1:Fromatted Date:2010年9月from:2010-09-01 11:05:19 +0200

2:Fromatted Date:2010年10月from:2010-10-01 11:05:19 +0200

3:Fromatted Date:2010年11月from:2010-11-01 11:05:19 +0100 4:Fromatted Date:2010年12月from:2010-12-01 11:05:19 +0100

5:Fromatted Date:2010年1月from:2011-01-01 11:05:19 +0100 <---なぜ2010年なのか?!

6:Fromatted Date:2011年2月from:2011-02-01 11:05:19 +0100

7:Fromatted Date:2011年3月from:2011-03-01 11:05:19 +0100

8:Fromatted Date:2011年4月from:2011-04-01 11:05:19 +0200

9:Fromatted Date:2011年5月from:2011-05-01 11:05:19 +0200

10:Fromatted Date:2011年6月from:2011-06-01 11:05:19 +0200

11:Fromatted Date:2011年7月from:2011-07-01 11:05:19 +0200

4

2 に答える 2

3

うーん :-( 本当に奇妙です。新しいビューベースのアプリを作成したばかりです ... ヒントが見つかりません

**更新: [dateFormatter setDateFormat: @"MMMM yyyy"] を使用する場合 (Y を小文字にするだけ) は機能します。

y/yyyy: (通年)

yy/yyy: (2 桁の年)

Y/YYYY: (通年、年の第 1 週の日曜日から開始)

YY/YYY: (年の第 1 週の日曜日から始まる 2 桁の年)

于 2010-07-01T10:52:12.707 に答える
1

私もあなたが話している問題に直面していませんでした。私もあなたのコードをコピーして、うまく働いていました。

よくわかりませんが、SDKのバージョンに問題があると思います。3.1.3を使用していて、正常に動作していたためです。別のSDKバージョンで試してみてください。

乾杯ミトゥル

于 2010-07-02T04:32:15.143 に答える