2011-05-19 27 views
3

我想要PST中的当前日期和时间。我用这个代码PST中的必需NSDate

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss zzz"]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"PST"]]; 

NSString *timeStamp = [dateFormatter stringFromDate:[NSDate date]]; 
NSLog(@"String:%@",timeStamp); 

它以字符串形式在PST中返回正确的日期和时间,但我希望NSDate在PST。所以当我更改NSString到NSDate是这样的:

NSDate *currentPST = [dateFormatter dateFromString:timeStamp]; 
NSLog(@"currentPST Date:%@",currentPST); 

它以GMT返回日期。我已经做了[R & d但都vain.Output是:

String:2011-05-18 22:28:54 PDT 
currentPST Date:2011-05-19 05:28:54 +0000 

任何人都可以提出一个解决方案,请。

预先感谢

回答

0

在可可,NSDate是在没有施加时区信息的日期的抽象表示。

每当您打印一个NSDate对象时,它将打印对应于默认时区(您的设备时区)的日期值。您的设备时区是格林威治标准时间这就是为什么你得到这样的价值。如果你深入研究这个问题,无论时间在哪里,但时区都不一样。