我正在尝试将一个NSDate对象的小时,分钟和秒初始化为0。 我正在使用下面的代码来获取它,但出于某种原因,我从[NSDateComponents date]获得nil。 我的代码出了什么问题?
NSCalendar *gregorian = [[[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDate *now = [[[NSDate alloc] init] autorelease];
NSDateComponents *nowDc = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit)
fromDate:now];
// this returns nil!
NSDate *todayStart = [nowDc date];
答案 0 :(得分:34)
从日历实例获取组件时,未设置NSDateComponents实例的日历。
但您必须先设置日历才能使用[components date]
,因为没有日历就没有日期。
因此,请尝试添加[nowDc setCalendar:gregorian];