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];

出力は 13:45 ではなく 15:43 です。どんな助けでも大歓迎です。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 に答える