まず、タイムゾーンは頭痛の種になります。これNSDateFormatter
は、タイムゾーンの次の形式を認識できるためです。つまり+0000
、GMT+1000
コロンを使用してタイムゾーンを認識できません+00:00
。単純に、パターンがありません。したがって、どういうわけか、タイムゾーン部分からコロンを削除する必要があります。
yyyy-mm-dd
次に、このパターンは入力文字列をカバーしていないため、入力日には次のパターンを使用する必要があります。
NSString *_dateString = @"2012-08-02T08:57:52.152713+00:00";
NSString *_noColonInTimezone = [_dateString stringByReplacingCharactersInRange:NSMakeRange(_dateString.length-3, 1) withString:@""];
NSDateFormatter *_dateFormatter = [[NSDateFormatter alloc] init];
[_dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSZZZ"];
NSDate *_date = [_dateFormatter dateFromString:_noColonInTimezone];
NSLog(@"raw date : %@", _date);
それはうまく機能しており、実際のデバイスでテストされています。正しい日付のオブジェクトを取得し、NSDate
必要に応じて出力の日付をフォーマットできることを願っています。