如何在iOS上获得上个月的第一天

She*_*khu -1 iphone ios

我正在使用日历应用程序,当我导航到下个月时,它工作正常,因为我能够获得该月的最后一天,并且从那里我可以获得下个月的第一天.但是当我导航到之前的一个月我无法得到上个月的第一天.有没有办法获得上个月的第一天.

Mar*_*arc 8

以下工作对我来说很好

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *currentDate = [NSDate date];

NSDateComponents *components = [calendar components:(NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitDay) fromDate:currentDate];

components.month = components.month - 1;
components.day = 1;

NSDate *newDate = [calendar dateFromComponents:components];
Run Code Online (Sandbox Code Playgroud)

如果您当前的月份是1月,这也有效.NSDateComponents将自动减少年份并将月份设置为12月.