これは私を夢中にさせてくれました。NSDateFromatterが適切なMMMM値を与えていない
これをテストするための新しいプロジェクトを作成しました。環境はxcode 3.2.5がシミュレータで実行され、デバイス上で同じ結果が得られます。
私は日付フォーマッタを作成し、フォーマットを設定して文字列を渡すと、何かが日付フォーマッタで動作しません。
int tmpMonth = 11;
int tmpYear = 2010;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"m/d/yyyy"];
NSString *dateAsString = [[NSString alloc] initWithFormat:@"%d/23/%d",tmpMonth,tmpYear];
NSDate *theDate = [[NSDate alloc] initWithTimeInterval:0 sinceDate:[dateFormatter dateFromString:dateAsString]];
[dateFormatter setDateFormat:@"MMMM d, yyyy"];
NSLog(@"%@",[dateFormatter stringFromDate:theDate]);
[dateFormatter setDateFormat:@"m/d/yyyy"];
NSLog(@"%@",[dateFormatter stringFromDate:theDate]);
[dateFormatter release];
[theDate release];
[dateAsString release];
これは、この出力になり:
[Session started at 2010-12-03 17:47:04 -0600.]
2010-12-03 17:47:05.274 wtfDateFormatter[18970:207] January 23, 2010
2010-12-03 17:47:05.277 wtfDateFormatter[18970:207] 11/23/2010
これは私のアプリの他の部分でうまく働いているように私は、私はそれをフォーマットMMMMを与えたときに、なぜそれが1月を印刷しているかわかりません、別のNSDateソースを使用するだけです。
。それはそれだった。私はこれを長らく見てきたことを知っていた – AtomRiot