首页 文章

从日,月和年生成NSDate [关闭]

提问于
浏览
41

我正在尝试从一个月和一年生成一个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];

但是, _date 在day = 24,month = 8,year = 2011时输出以下内容:

0168-07-25 04:56:02 0000

我必须做一些可怕的错误,但我不知道是什么 . 任何人都知道可能会发生什么?

3 回答

  • 2

    您的代码中有拼写错误:(最后一行应为 setYear:

    [components setDay:[day intValue]];
     [components setMonth:[month intValue]];
     [components setYear:[year intValue]];
    
  • 3

    一个明显的故障是:

    [components setMonth:[year intValue]];    //setting month with year!
    
  • 40

    您正在调用setMonth两次,第二次调用year的值 . 应该:

    [components setDay:[day intValue]];
    [components setMonth:[month intValue]];
    [components setYear:[year intValue]];
    

相关问题