0

この件に関してはたくさんのスレッドがあることを知っており、それらすべてを読みました。

私の特定のケースでは、iPhone 6.1 シミュレーターでテストすると、dateFromString は問題なく動作しますが、iPhone 5.1 シミュレーターでは null を返します。また、iOS6 と iOS5 で同じ結論に達した複数のデバイスでテストしました。

「入力」の形式: 2013-02-15T18:00:00+03:00

次のコードを書きました。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormatter setLocale:enUSPOSIXLocale];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss+zz:zz"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:input];

[dateFormatter setDateFormat:@"EEE'. 'dd' 'MMM' 'yyyy', 'HH':'mm"];
NSString *stringFromDate = [dateFormatter stringFromDate:dateFromString];
return stringFromDate;

... stringFromDate で iOS6 では "Fri. 15 Feb 2013, 18:00" を取得し、iOS5 では "null" をシミュレータとデバイスの両方で取得します。

私を助けてください

4

1 に答える 1

1

iOS5 や iOS 6 の問題ではありません。設定で設定されている時間形式が 12 時間形式か 24 時間形式かを確認してください。

それはあなたの問題を解決します

于 2013-02-06T12:04:04.857 に答える