Sko*_*ota 28 iphone cocoa-touch nsdate nscalendar
这是一个非常简单的概念,但到目前为止,我一直无法找到一个优雅的(和日历区域独立)解决方案.我需要找到一个任意的月份的第一天NSDate.例如,给定一个任意NSDate(arbitraryDate)将返回另一个NSDate对象(让我们调用它firstDayOfMonthDate),它代表该月的第一天arbitraryDate.时间组件并不重要,因为我只需要在该月的第一天使用NSDate对象(尽管为了整洁,如果时间刚刚归零,它将是有用的).
在此先感谢您的任何帮助.
dic*_*ciu 68
可能的解决方案:
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *arbitraryDate = [NSDate date];
NSDateComponents *comp = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:arbitraryDate];
[comp setDay:1];
NSDate *firstDayOfMonthDate = [gregorian dateFromComponents:comp];
Run Code Online (Sandbox Code Playgroud)
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear
fromDate:[NSDate date]];
components.day = 1;
NSDate *firstDayOfMonthDate = [[NSCalendar currentCalendar] dateFromComponents: components];
NSLog(@"First day of month: %@", [firstDayOfMonthDate descriptionWithLocale:[NSLocale currentLocale]]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19255 次 |
| 最近记录: |