文字列「2012年6月11日午後9時30分」をNSDateに変換していますが、何らかの理由で4時間先に進んでいます。面白いことに、これと同じ文字列を使用して、同じ変換を実行する必要がある詳細ビューでUIDatePickerにフィードし、UIDatePickerは時間を適切にレンダリングします。メインビューと詳細ビューでNSLogを実行しようとした場合にのみ、問題が発生します。
これは私の見解です:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMMM dd, yyyy h:mma"];
NSDate *dateFromString = [[[NSDate alloc] init]autorelease];
NSLog(@"DATE %@", _date);
dateFromString = [formatter dateFromString:_date];
NSLog(@"NSDATEFROMSTRING %@", dateFromString);
NSLogは以下を返します:
2012-06-11 00:02:09.136 LocalDeals[78090:207] DATE Jun 11, 2012 9:30 PM
2012-06-11 00:02:09.137 LocalDeals[78090:207] NSDATEFROMSTRING 2012-06-12 01:30:00 +0000
追加しても:
[formatter setTimeZone:[NSTimeZone defaultTimeZone]];
いつでも同じ結果が得られます。何か案は?ちなみにこれはシミュレーター上にあり、はい、私のリージョンフォーマットは米国に設定されています。