PST中所需的NSDate

时间:2011-05-19 05:35:24

标签: iphone nsdateformatter

我想在PST中使用当前日期和时间。我用过这段代码

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中返回正确的日期和时间,但我希望在PST中使用NSDate。所以当我像这样将NSString更改为NSDate时:

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

以GMT格式返回日期。我做过R& D但都是徒劳的。输出是:

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

请有人建议解决方案。

提前致谢

1 个答案:

答案 0 :(得分:0)

在Cocoa中,NSDate是未应用时区信息的日期的抽象表示。

每当您打印NSDate对象时,它将打印与默认时区(您的设备时区)对应的日期值。您的设备时区是GMT,这就是为什么您得到这样的价值。如果你深入研究,那么时间也一样,但时区会有所不同。