1

コード:

NSString *ds = @"2013-02-25";
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd"];
NSDate* date = [formatter dateFromString:ds];
NSLog(@"%@", date); //2012-02-24 16:00:00 +0000
[formatter setDateFormat:@"MMM dd, YYYY"];
NSLog(@"%@", [formatter stringFromDate:date]); //Feb 25, 2012

私が何か間違ったことはありますか?それとも iOS 6 SDK のバグですか?

4

1 に答える 1

6

これを変える :

[formatter setDateFormat:@"YYYY-MM-dd"];
[formatter setDateFormat:@"MMM dd, YYYY"];

に :

[formatter setDateFormat:@"yyyy-MM-dd"];
[formatter setDateFormat:@"MMM dd, yyyy"];

エラーの理由、

YYYY を使用するのはよくある間違いです。yyyy は暦年を指定し、YYYY は ISO 年週カレンダーで使用される (「年の週」の) 年を指定します。ほとんどの場合、yyyy と YYYY は同じ数値になりますが、異なる場合もあります。通常、暦年を使用する必要があります。

于 2013-02-27T05:02:39.203 に答える