NSDateフォーマッターを使用して、Facebook Graph APIリクエスト(GMT)から日付を取得し、それをユーザーのローカルタイムゾーンに変換しています。日付を正しく読み込んで新しいタイムゾーンを設定することはできますが、新しい日付を印刷すると、夏時間が考慮されていないようです。
以下の時間は実際にはリクエストから発生しますが、たとえばここでは、Facebookの応答から標準の時間文字列を入力するだけです
NSString *time = @"2012-04-12T15:25:09+0000"
NSTimeZone *localZone = [NSTimeZone localTimeZone];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:localZone];
[formatter setDateFormat:@"yyyy-mm-dd'T'HH:mm:ssZZZZ"];
NSDate *date = [formatter dateFromString:time];
[formatter setDateFormat:@"eee MMM dd, yyyy hh:mm a"];
NSString *dateStr = [formatter stringFromDate:date];
NSLog(@"%@",dateStr);
この日付を印刷すると、「2012年1月12日木曜日10:25 AM」が印刷されますが、これは、私がいる「America/New_York」タイムゾーンでは間違っています。「2012年1月12日木曜日11:25AM」または1時間先になります。夏時間を強制する方法はありますか?前もって感謝します!
編集:私はそれが実際に月を間違ってフォーマットしていることに気づきました。どういうわけか4月になって1月になります。なぜこれでしょうか?