bog*_*gen 8 cocoa cocoa-touch calendar nscalendar nsdatecomponents
我有一个方法的子集,需要获得当月的第一天.
NSDate *today = [NSDate date]; // returns correctly 28 february 2013
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
components.day = 1;
NSDate *dayOneInCurrentMonth = [gregorian dateByAddingComponents:components toDate:today options:0];
Run Code Online (Sandbox Code Playgroud)
dayOneInCurrentMonth然后打印出来2013-03-01 09:53:49 +0000,下个月的第一天.
我如何获得当月的第一天?
Fab*_*ser 17
你的逻辑是错误的:你没有将日期设置为1,而是在当前日期添加一天.
尝试类似的东西:
NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorian components:(NSEraCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit) fromDate:today];
components.day = 1;
NSDate *dayOneInCurrentMonth = [gregorian dateFromComponents:components];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7309 次 |
| 最近记录: |