0

日付の範囲がありますが、すべて「yyyyMMdd」形式です。

問題は、NSDateFormatterが「20121021」を解析しようとすると、iOS6でのみnullを返すことです。

それで、私はそれをiOS 4.xと5.xでテストしました、それは完全に動作します。同じ問題を抱えている人はいますか?

コードは次のとおりです。

NSString *sdate = @"20121021";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyyMMdd"];

NSDate *aDate = [dateFormat dateFromString:sdate];
[dateFormat release];
if (aDate){
    [dates addObject:aDate];
}else{
    NSLog(@"%@", sdate);
}
4

2 に答える 2

0

答えが見つかりました...フォーマッタに NSTimeZone を設定するのを忘れていました。

新しいコード:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];

[dateFormat setDateFormat:@"yyyyMMdd"];

NSDate *aDate = [dateFormat dateFromString:sdate];
[dateFormat release];

ありがとう

于 2012-10-09T18:33:50.100 に答える