我有一个方法的子集,需要获得当月的第一天 .
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];
dayOneInCurrentMonth
然后打印 2013-03-01 09:53:49 +0000
,即下个月的第一天 .
我如何获得当月的第一天?
6 回答
你的逻辑是错误的:你没有将日期设置为1,而是在当前日期添加一天 .
尝试类似的东西:
你想要
[NSCalender dateFromComponents:]
:从给定日期到第一个的简单方法:
获取上个月第一个和最后一个日期的简便方法是:
希望这可以帮助
通过创建新变量对内存使用来说代价很高,最好使用日期格式化程序来获取当月的第一天