我使用此代码设置自定义日期
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日也不存在
答案 0 :(得分:0)
问题是我将当月恢复了一个月,但这不起作用,因为六月只有30天,而且今天是第31天
答案 1 :(得分:0)
你忘了设定一天
[components setDay:1];