Iphone 基于时区创建NSDate对象

Iphone 基于时区创建NSDate对象,iphone,cocoa-touch,ios4,nsdate,nsdateformatter,Iphone,Cocoa Touch,Ios4,Nsdate,Nsdateformatter,我从我的申请中获得以下日期格式 07/18/2011/04/45/EDT 我将其分为“07/18/2011/04/45”和“EDT” 我使用以下代码编写了一个日期 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"MM/dd/yyyy/HH/mm"]; [dateFormatter setTimeZone:[NSTimeZone tim

我从我的申请中获得以下日期格式

07/18/2011/04/45/EDT
我将其分为“07/18/2011/04/45”和“EDT”

我使用以下代码编写了一个日期

   NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
   [dateFormatter setDateFormat:@"MM/dd/yyyy/HH/mm"];
   [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"EDT"]];

   NSDate *currentServerDate = [dateFormatter dateFromString:formattedDateString];
   NSLog(@"currentServerDate %@",currentServerDate);
但是,当我打印NSDate(使用上述格式化程序创建)时,它会打印为“2011-07-18 14:15:00+0530”,其中+0530是我的时区。我需要组成相对于EDT时区的。我该怎么做


谢谢

我想时区可能不是你想象的那样。尝试记录由返回的时区,看看它告诉您什么。此外,请查看我链接到的文档,其中说明:

一般来说,除了“UTC”或“GMT”等独特实例外,不鼓励您使用缩写。时区缩写没有标准化,因此给定的缩写可能有多种含义,例如,“EST”指美国和澳大利亚的东部时间


默认情况下,
NSDate
description
方法在GTM中用系统的区域设置偏移量显示日期。如果要使用
NSLog
弹出
NSDate
,请使用以下选项之一:

NSLog(@"date = %@", [date descriptionWithLocale:some_other_locale])
NSDateFormatter *formatter = ...
NSLog(@"date = %@", [formatter stringFromDate:date]);

请显示你创建日期的代码,然后打印出来。好的,用它更新了帖子。谢谢,杰里米,看来这就是问题所在。投票赞成。谢谢