1

使用 NSCalendar 及其方法dateByAddingComponents:toDate:options:,该方法有时会返回错误的值。即时:

    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *components = [[NSDateComponents alloc] init];
    [components setYear:2013];
    [components setMonth:2];
    [components setDay:27];
    NSDate *date = [calendar dateFromComponents:components];
    NSLog(@"%@", date); // 2013-02-27

    NSDateComponents *addingComponents = [[NSDateComponents alloc] init];
    [addingComponents setMonth:1];
    [addingComponents setDay:4]; // value 5 give the same result.
    date = [calendar dateByAddingComponents:addingComponents toDate:date options:0];
    NSLog(@"%@", date); // 2013-03-31

控制台log: 2013-02-27 and 2013-03-31

现在,如果将日期组件值更改为 5,该方法返回相同的值NSDate,但如果更改为 6,则日期为 2013-04-01。

有人对这种行为有答案吗?提前感谢。

拉斐尔·克鲁兹·马尔克斯。

4

0 回答 0