NSDateComponents 返回 nil
我试图获取一个 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];
I'm trying to get an NSDate object with the hour, minute, and second initialized to 0.
I'm using the code below to get it, but for some reason I get nil from [NSDateComponents date].
What's wrong with my code?
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];
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您从日历实例获取组件时,不会设置 NSDateComponents 实例的日历。
但是您必须先设置日历才能使用
[组件日期]
,因为没有日历就没有日期。因此尝试添加
[nowDc setCalendar:gregorian];
When you get the components from a calendar instance the calendar of the NSDateComponents instance is not set.
But you have to set the calendar before you can use
[components date]
, because without calendar there is no date.So try to add
[nowDc setCalendar:gregorian];