iOS アプリで、文字列形式で取得した日付を NSDate に変換しようとしています。最初に文字列を正しい形式にしましたが、それを NSDate に変更すると、別の出力日付が得られます。以下のコードでは、文字列が日付形式と一致することを示す 2 つの NSLog を配置しているため、出力が異なる理由がわかりません。
NSString * list = @"Sun, 24 Mar 2013 21:08:02 +0000";
NSArray *listItems = [list componentsSeparatedByString:@", "];
//24 Mar 2013 21:08:02 +0000
NSArray *listItems1 = [[listItems objectAtIndex:1] componentsSeparatedByString:@" "];
NSString *timeSubString = [[listItems1 objectAtIndex:3] substringWithRange:NSMakeRange(0,5)];
NSString * newConcat = [NSString stringWithFormat:@"%@-%@-%@ %@",[listItems1 objectAtIndex:0],[listItems1 objectAtIndex:1],[listItems1 objectAtIndex:2], timeSubString];
NSLog(@"***DATE STRING***: %@",newConcat);
//***DATE STRING***: 24-Mar-2013 21:08
NSDateFormatter* fmt = [NSDateFormatter new];
[fmt setDateFormat:@"dd-MMM-YYYY HH:mm"];
NSDate* date = [fmt dateFromString:newConcat];
NSLog(@"***OUTPUT DATE***: %@",date);
//***OUTPUT DATE***: 2013-01-06 02:08:00 +0000
NSLog(@"***DATE STRING***: %@", [fmt stringFromDate:date]);
//***DATE STRING***: 05-Jan-2013 21:08