【问题标题】:Get exactly 1 day using NSDate使用 NSDate 正好 1 天
【发布时间】:2014-08-01 08:32:16
【问题描述】:

我如何使用 NSDate 准确地获得 1 天,即从 2014-08-01 00:00:00 +00002014-08-01 23:59:59 +0000。这可以使用 NSDate 获得吗?

【问题讨论】:

    标签: objective-c ios7 nsdate nsdateformatter


    【解决方案1】:

    我不清楚你的问题。如果你想第二天得到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));
    }
    

    【讨论】:

      猜你喜欢
      • 2011-07-01
      • 2011-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多