2012-04-27 15 views
0

NSDateFormatterを使用して文字列を日付に変換しています。ただし、返される日付はnilです。 問題を引き起こすのはハードコードされた文字列だけです。私はstringFromDate:を使用し、このNSStringをNSDateに変換すると問題ありません。NSDateFormatterは文字列を日付に変換しません

ハードコードされた日付:
2012-30-22T10:30:19 + 0530
dateFromString:
2012-04-27T10:20:43 + 0530

私に差を見ることができません日付形式。

コード:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZ"]; 

NSString *string = [dateFormatter stringFromDate:[NSDate date]]; 
NSLog(@"string %@", string); 

ログ:〜文字列2012-04-27T10:20:43 + 0530

NSDate *date = [dateFormatter dateFromString:string]; 
NSLog(@"date %@", date); 

ログ:〜日2012-04-27午前4時50分:43 +0000

これまでのところとても良いです。私の文字列から日付が返されます。しかし、私は、私は自分自身を入力した日付を使用しようとすると...

NSString *string2 = @"2012-30-22T10:30:19+0530"; 
NSLog(@"string2 %@", string2); 

ログ:〜日2012-04-27 4時50分43秒0000

//Here comes the problem. 
NSDate *date2 = [dateFormatter dateFromString:string2]; 
NSLog(@"date 2 %@", date2); 

ログ:〜日付2(ヌル)

他の日付が無効だったのはなぜですか?

+0

は、あなたの自己入力文字列の1か月間のタイプミスを検出しますか?それは30番目の月を知らないのでそれを台無しにするかもしれません。 –

+0

私はそれがそうでなければならないと思います。私は自分がそれを見つけたとは信じられません。実際に私はこの文字列を手動で入力しませんでした。それはサーバーから来ます。私はサーバーが台無しになったと思います。それを回答として掲示して、それを正しいものとしてマークします。 – SEG

+0

ありがとうたくさんのbtw! :-) – SEG

答えて

0

は、あなたの自己入力文字列の1か月間のタイプミスを検出しますか?それは30番目の月を知らないのでそれを台無しにするかもしれません。あなた自身の有効な日付を入力してみてください。

関連する問題