iOS NSDate日期操作总结


获取当天0点的时间

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:currentDate];
NSDate *zeroDate = [calendar dateFromComponents:components];

获取两个日期之间的天数

/**
* @method
*
* @brief 获取两个日期之间的天数
* @param fromDate       起始日期
* @param toDate         终止日期
* @return    总天数
*/
+ (NSInteger)numberOfDaysWithFromDate:(NSDate *)fromDate toDate:(NSDate *)toDate {
    
    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
    NSDateComponents *comp = [calendar components:NSCalendarUnitDay
                                              fromDate:fromDate
                                                toDate:toDate
                                               options:NSCalendarWrapComponents];
//     NSLog(@" -- >>  comp : %@  << --",comp);
     return comp.day;
}

时间格式AM/PM 

NSDate *date = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.AMSymbol = @"AM";
formatter.PMSymbol = @"PM";
formatter.dateFormat = @"yyyy-MM-dd hh:mm:ss a”; // hh 是十二小时制,HH 二十四小时制 注意后面加的字母a
NSString *ff = [formatter stringFromDate:date];