我的目标是获得一个 NSDate 代表与另一个 NSDate 同一天,但小时、分钟、秒设置为 0。
因此 2013/11/27 13:23:32 将变为 2013/11/27 00:00:00。
我做了这个功能,我在网上找到了例子
+ (NSDate*)dayEarliestDateForDate:(NSDate*)date {
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* comps = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:date];
[comps setHour:0];
[comps setMinute:0];
[comps setSecond:0];
NSDate* dateEarliest = [calendar dateFromComponents:comps];
return dateEarliest;
}
但奇怪的是,当我运行它时
NSDate* date2 = [NSDate dayEarliestDateForDate:date1];
我明白了:
(lldb) po date1
$3 = 0x11d98dc0 2013-08-**13** 07:37:58 +0000
(lldb) po date2
$4 = 0x140588f0 2013-08-**12** 22:00:00 +0000
如你所见,天变了!
有任何想法吗 ?谢谢