我从 NSDateFormatter 得到一些奇怪的输出。我正在将日期从 GMT 转换为系统时区,即 EDT。这应该是格林威治标准时间 -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)它实际上返回 06.30 EDT。也就是未来 8 小时。
谁能帮我理解我在这里的某个地方是否出错了?我在挠头,但我不明白为什么这似乎不起作用。
谢谢