【发布时间】:2014-08-01 08:32:16
【问题描述】:
我如何使用 NSDate 准确地获得 1 天,即从 2014-08-01 00:00:00 +0000 到 2014-08-01 23:59:59 +0000。这可以使用 NSDate 获得吗?
【问题讨论】:
标签: objective-c ios7 nsdate nsdateformatter
我如何使用 NSDate 准确地获得 1 天,即从 2014-08-01 00:00:00 +0000 到 2014-08-01 23:59:59 +0000。这可以使用 NSDate 获得吗?
【问题讨论】:
标签: objective-c ios7 nsdate nsdateformatter
我不清楚你的问题。如果你想第二天得到NSDate:
+ (NSDate *)numberOfDays:(NSInteger)numberOfDays from:(NSDate *)fromDate {
NSDateComponents *dayComponent = [[NSDateComponents alloc] init];
dayComponent.day = numberOfDays;
NSCalendar *calendar = [NSCalendar currentCalendar];
return [calendar dateByAddingComponents:dayComponent toDate:fromDate options:0];
}
如果要比较两个NSDate 是否在同一天,那么(来自 NSDate 类别):
- (BOOL)isOnTheSameDayAs:(NSDate *)date
{
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components1 = [calendar components:(NSYearCalendarUnit| NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSWeekdayCalendarUnit | NSWeekdayOrdinalCalendarUnit) fromDate:self];
NSDateComponents *components2 = [calendar components:NSYearCalendarUnit| NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSWeekdayCalendarUnit | NSWeekdayOrdinalCalendarUnit fromDate:date];
return ((components1.year == components2.year) &&
(components1.month == components2.month) &&
(components1.day == components2.day));
}
【讨论】: