NSCalendar - DateFromComponents给我错误的日期!不明白为什么

时间:2013-06-07 17:51:25

标签: ios objective-c nsdate

我使用TapKu库进行日历。

我想在UIAlertView中显示所选的日期。

在评论中,我把“信息”的值。 返回NSDate的函数是这样的:

NSCalendar *gregorian = [[NSCalendar alloc] initWithCa lendarIdentifier:NSGregorianCalendar];
[gregorian setTimeZone:tz];
NSDateComponents *comp = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit) fromDate:[NSDate date]];

[comp setDay:info.day]; // day = 31
[comp setMonth:info.month]; // month = 11
[comp setYear:info.year]; // 2013
[comp setHour:info.hour]; // 10
[comp setMinute:info.minute]; // 0
[comp setSecond:info.second]; // 0
[comp setTimeZone:tz]; // GMT (GMT) offset 0
NSLog(@"COMP BEFORE CHANGING = %@", comp); // It displays the up infos
return [gregorian dateFromComponents:comp];
// The return value is : 2013-12-01 10:00:00 +0000 

为什么返回值有误?这完全不是我想要的日期。它增加了一天 2013年11月31日

请帮助,这个问题让我发疯了哈哈

由于

1 个答案:

答案 0 :(得分:3)

这是完全正确的!!!

因为十一月只有30天。