NSDateFormatter から奇妙な出力が得られます。日付を GMT からシステム タイム ゾーン (EDT) に変換しています。これは GMT から -4 時間のはずです。
-(NSDate*)parseDate:(NSString*)inStrDate {
NSLog(@"Date To Parse %@", inStrDate);
NSDateFormatter* dtFormatter = [[NSDateFormatter alloc] init];
[dtFormatter setLocale:[NSLocale systemLocale]];
[dtFormatter setTimeZone:[NSTimeZone systemTimeZone]];
[dtFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss +0000"];
NSDate* dateOutput = [dtFormatter dateFromString:inStrDate];
NSLog(@"Parsed Date %@ %@", dateOutput, [NSTimeZone systemTimeZone]);
return dateOutput;
}
ログ出力:
2012-09-15 22:32:53.358 解析する日付 2012-09-16 02:32:53 +0000 2012-09-15 22:32:53.360 解析された日付 2012-09-16 06:32:53 +0000 アメリカ/New_York (EDT) オフセット -14400 (昼光)
しかし、-4 ではなく +4 時間を返しています。したがって、22.30 EDT (02.30 GMT) を出力するはずの場所に、実際には 06.30 EDT が返されます。これは8時間後の未来です。
ここのどこかで間違っているかどうかを理解してくれる人はいますか? 頭を悩ませていますが、なぜこれが機能しないように見えるのかわかりません。
ありがとう