私は日付を与えられます:
2012-10-11T23:14:00-04:00
NSDateFormatterでこの形式を使用して解析しています。
yyyy-MM-dd'T'HH:mm:ss-ZZ
しかし、それはnilを返します
私は日付を与えられます:
2012-10-11T23:14:00-04:00
NSDateFormatterでこの形式を使用して解析しています。
yyyy-MM-dd'T'HH:mm:ss-ZZ
しかし、それはnilを返します
日付の形式が間違っています。変換する文字列にコロンが含まれている場合は、フォーマット文字列に 5 つのZ文字を入れる必要があり ます。これが正しい使い方です。また、日付 + または - GMT (少なくとも /format/ について話している場合) のみを持つことが保証されていないため、フォーマットの一部として +/- を含めないでください。
したがって、正しいフォーマット文字列は次のようになりますyyyy'-'MM'-'dd'T'HH':'mm':'ssZZZZZ
。
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ssZZZZZ"];
NSDate* date = [formatter dateFromString:@"2012-10-11T23:14:00-04:00"];
NSLog(@"Date: %@", date); // This correctly logs Date: 2012-10-12 03:14:00 +0000
Z文字を 2 つだけ使用するのが RFC 822 形式であり、日付文字列は次のようにする必要があります: 2012-10-11T23:14:00-0400
(つまり、タイム ゾーン オフセットに時間/分の区切り記号がない)。サンプル文字列のタイムゾーンは ISO-8601 です。詳細については、http: //www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patternsを参照してください。