NSDate和设备的时区

时间:2012-10-11 15:07:10

标签: iphone objective-c ios

我正在尝试使用以下代码解析这样的日期:2012-10-20T13:45:00+002

NSDateFormatter* formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
NSDate *date = [formatter dateFromString:@"2012-10-20T13:45:00+002"];

但是当我尝试在设备上输出它时,它的时区已经是+2,使用它:

NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"HH:mm"];
dateformatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"ar_EG"];
cell.infoLabel.text = [dateFormatter stringFromDate:date];

输出是:15:43而不是13:45应该是。 任何帮助,将不胜感激。 PS:我在iPhone上运行iOS5 / 6,Xcode 4.5,我在模拟器和物理设备上都试过了。

2 个答案:

答案 0 :(得分:0)

您需要添加区域设置和时区

  

[dateFormatter setLocale:[NSLocale systemLocale]]; //你想要的语言环境   [dateFormatter setTimeZone:[NSTimeZone systemTimeZone]]; //时区相同

答案 1 :(得分:0)

此链接可以为您服务。请检查:

How to convert time to the time zone of the iPhone device?

希望它有效......