0

我正在尝试解析这样的日期: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,我在模拟器和物理设备上都试过了。

4

1 回答 1

0

您需要添加语言环境和时区

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

于 2012-10-11T15:10:00.517 回答