0

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

ハードコーディングされた日付:
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 04:50:43 +0000

ここまでは順調ですね。文字列から日付が返されます。しかし、自分で入力した日付を使用しようとすると...

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

ログ: ~ 日付 2012-04-27 04:50:43 +0000

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

ログ: ~ 日付 2 (null)

他の日付が null でないのに、なぜこの日付は null なのですか?

4

1 に答える 1

0

月の30は、自分で入力した文字列のタイプミスですか?30ヶ月がわからないのでめちゃくちゃになっているかもしれません。自分の有効な日付を入力してみてください。

于 2012-04-27T05:13:33.343 に答える