3

私がこれを行うと、私が抱えている奇妙な問題:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MMMM d, yyyy EEEE 'at' h:mm a"];
NSString *originalDate = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"In Date: %@",originalDate);
NSDate *newDate = [dateFormatter dateFromString:originalDate];
NSLog(@"Out Date: %@",[dateFormatter stringFromDate:newDate]);

私はこの出力を得る:

In Date: April 30, 2013 Tuesday at 2:42 PM
Out Date: December 28, 1999 Tuesday at 2:42 PM

同じフォーマッタを使用して文字列に変換し、元に戻した後、異なる日付を取得するのはなぜですか? この変換を正しく機能させる方法はありますか?

4

2 に答える 2

4

これは iOS 6 のバグですNSDateFormatter。文字列の先頭以外に曜日名がある日付形式を正しく解析できません。しばらく前にこれについてバグレポートを提出しました。まだ修正を待っています。

同じ形式が iOS 5 で動作します。

更新: vikingosegundo によるテストに基づいて、独自の iOS テストを更新します。これは OS X と同じ問題のようです。曜日形式が先頭にあるという単純な問題ではなく、年の形式の後に曜日形式が表示される場合はバグです。

于 2013-04-30T21:59:00.167 に答える