【发布时间】:2012-06-21 07:40:21
【问题描述】:
我需要从 [NSDate 日期] 获取 00:00(一天的开始)的 NSDate 对象,假设当前是 11:30(由 [NSDate 日期] 返回),2012 年 1 月 6 日,现在我需要在 2012 年 1 月 6 日上午 00:00 有一个 NSDate。
我没有尝试过,但我的想法是:
NSDate *now = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:now];
[components setHour:0];
[components setMinute:0];
[components setSecond:0];
NSDate *morningStart = [calendar dateFromComponents:components];
所以我首先获取当前日期(比如说它是 01/06/2012),并为日期构造一个 NSDateComponent,然后我将小时/分钟/秒设置为 0,并且不应更改年/月/日(即 2012 年 1 月 6 日)然后我为此组件设置创建一个 NSDate,我可以获得 00:00:00 01/06/2012 的日期吗?
【问题讨论】:
-
检查 poozolax 的答案。它要好得多,而且 100% 正确!
标签: iphone nsdate nscalendar nsdatecomponents