2012-02-13 4 views
5

私はこのコードブロックをISO 8601の日付/時刻指定で読みます。問題は何らかの理由で月が効かないことです。私がそれを月に変換するたびに "01"です。私は間違って何をしていますか?NSDateFormatterの月が間違っているようです

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

ので、例えば、日付ストリングだった場合:

@"2002-03-12T21:13:27Z" 

私の出力は次のようになります。私はすでに試してみました

2002-01-12 21:13:27 +0000 

もの:

  • にMMを変更しますLL
  • setCalendar/setLocaleを使わずに試してみた
  • の周りを他の場所に回してみました。何も変わらない。
  • SOのすべてを見て、他の人にとってはうまくいくように見えます。
+2

です。これは何も変わらないかもしれませんが、 'DD'フォーマット指定子は' dd'でなければなりません。 – dasblinkenlight

答えて

15

この

[UTCDateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"]; 

DDを試してみて "年の日" ではない "月の日" です。 NSDateFormatterのフォーマットを調べる素晴らしいソースは、this table

+1

うわー...なぜMMはMMが動作しないようにしていたのですか?それが起こるはずのように見えません。しかし、ありがとう! –

+0

「このテーブル」は素晴らしいです!それはアップルのドキュメントでなければなりません。 – Lewis42

+0

クールな男。どうもありがとうございます ! –

関連する問題