NSCalenda日历类

1.

//将数据库时间和当前时间相比,得出时间差.
+ (NSString *)dateDescriptionWithDate:(NSDate *)date{
    
    // NSCalendar日历类,提供了非常丰富的日期转换函数
    //1. 取出当前的日期
    NSCalendar *currentCalendar = [NSCalendar currentCalendar];
    
    //2. 用当前日期currentCalendar和传入的date比较,判断是否是今天
    if ([currentCalendar isDateInToday:date]) {
        NSLog(@"今天") ;
    }
    
    //3. 判断是否是昨天
    if ([currentCalendar isDateInYesterday:date]){
        NSLog(@"昨天") ;
    }
    
    /*
     取出日期的时间组件方法.有年份/月份/日/时/分/秒/星期等等. 
     NSCalendarUnit 是一个枚举.里面列举了日期的时间组件.
     - (NSInteger)component:(NSCalendarUnit)unit fromDate:(NSDate *)date NS_AVAILABLE(10_9, 8_0);
     */
    
    //4. 返回传入的日期是几几年.
    NSInteger yearData = [currentCalendar component:NSCalendarUnitYear fromDate:date];
    NSLog(@"年份:%ld",yearData);
    
    
    //5.比较函数,返回完整的自然年数. 当期日期和传入日期比较,如果时间间隔<1年,返回0. 0年<时间间隔<2年,返回1 ....
    NSDateComponents *dateComponents = [currentCalendar components:NSCalendarUnitYear fromDate:date toDate:[NSDate date]options:(NSCalendarWrapComponents)];
    NSLog(@"相差%ld年",dateComponents.year);

    return @"其他";
}
原文地址:https://www.cnblogs.com/jiayongqiang/p/5600966.html