从日,月和年生成NSDate
我试图从一个月和一年(所有的整数格式)生成一个NSDate。
现在我的尝试是这样的:
NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *components = [[NSDateComponents alloc] init]; NSNumber *day = [dataSource valueForKey:@"day"]; NSNumber *month = [dataSource valueForKey:@"month"]; NSNumber *year = [dataSource valueForKey:@"year"]; [components setDay:[day intValue]]; [components setMonth:[month intValue]]; [components setMonth:[year intValue]]; NSDate *_date = [calendar dateFromComponents:components];
但是,当日= 24,月= 8,年= 2011时, _date输出以下内容:
0168-07-25 04:56:02 +0000
我一定在做一些可怕的错误,但我不知道是什么。 任何人都知道可能会发生什么?
你的代码中有一个错字:(最后一行应该是setYear:
[components setDay:[day intValue]]; [components setMonth:[month intValue]]; [components setYear:[year intValue]];
您正在调用setMonth两次,第二次使用年份的值。 应该:
[components setDay:[day intValue]]; [components setMonth:[month intValue]]; [components setYear:[year intValue]];
一个明显的小故障是:
[components setMonth:[year intValue]]; //setting month with year!