ISO 8601 日付/時刻仕様で読み取るこのコード ブロックがあります。問題は、何らかの理由で月が機能しないことです。変換するたびに月は「01」になります。私は何を間違っていますか?
NSDateFormatter *UTCDateFormat = [[NSDateFormatter alloc] init];
[UTCDateFormat setDateFormat:@"yyyy-MM-DD'T'HH:mm:ss'Z'"];
[UTCDateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[UTCDateFormat setCalendar:[[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]];
[UTCDateFormat setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]];
NSLog(@"%@", [UTCDateFormat dateFromString:dateString]);
たとえば、dateString が次の場合:
@"2002-03-12T21:13:27Z"
私の出力は次のようになります。
2002-01-12 21:13:27 +0000
私がすでに試したこと:
- MMをLLに変更
- setCalendar/setLocaleなしで試しました
- - の周りで ' を試してみました
- MMの位置を他の場所に切り替えました。それは決して何も変えません。
- SO全体を調べたところ、他のすべての人に役立つようです。