NSDateComponents返回nil

时间:2011-02-27 11:42:58

标签: objective-c ios nsdate

我正在尝试将一个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];

1 个答案:

答案 0 :(得分:34)

从日历实例获取组件时,未设置NSDateComponents实例的日历。

但您必须先设置日历才能使用[components date],因为没有日历就没有日期。

因此,请尝试添加[nowDc setCalendar:gregorian];