Ios dateFromComponents返回错误的日期
我正在使用此代码设置自定义日期Ios dateFromComponents返回错误的日期,ios,objective-c,date,nsdate,nsdatecomponents,Ios,Objective C,Date,Nsdate,Nsdatecomponents,我正在使用此代码设置自定义日期 NSDecimalNumber *salaryToReturn = [NSDecimalNumber zero]; NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier: NSCalendarIdentifierGregorian]; // Setup an NSCalendar NSDateComponents *components = [gregoria
NSDecimalNumber *salaryToReturn = [NSDecimalNumber zero];
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier: NSCalendarIdentifierGregorian]; // Setup an NSCalendar
NSDateComponents *components = [gregorianCalendar components: NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear |NSCalendarUnitSecond | NSCalendarUnitMinute | NSCalendarUnitHour | NSCalendarUnitTimeZone fromDate: [NSDate date]]; // Setup NSDateComponents
[components setTimeZone:[NSTimeZone defaultTimeZone]];
[components setMonth:monthInt]; // 6
[components setYear:yearInt]; // 2015
// Setup the new date
NSDate *dateToCompare = [gregorianCalendar dateFromComponents: components];
但是dateToCompare
显示为“2015-07-01 11:31:01+0000”
与7月而不是6月一样,为什么会这样?但是,如果我将其设置为5而不是6,它会正确显示
谢谢大家!
编辑
我想我知道为什么,因为我没有设定日期,而且6月31日不存在。问题是我将当月还原为一个月,但这不起作用,因为6月只有30天,今天是31日。问题是我将当月还原为一个月,但这不起作用,因为六月只有30天,今天是31号,你忘了定日子了
[components setDay:1];
你忘了定日子了
[components setDay:1];