ios 时间类转化为字符串

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

//  NSString* timeStr = [self stringWithDate: [NSDate dateWithTimeIntervalSince1970:userGifGrouptEntity.lastGiftSentTime / 1000]]

- (NSString *)stringWithDate:(NSDate *)date  {

    if (date == nil)

        return @"";

    NSDate *now = [NSDate date];

    NSTimeInterval time = [now timeIntervalSinceDate:date];

    NSCalendar* calendar = [NSCalendar currentCalendar];

    NSDateComponents *nowComponents = [calendar components:NSYearCalendarUnit | NSHourCalendarUnit fromDate:now];

    NSDateComponents *dateComponets = [calendar components:NSYearCalendarUnit fromDate:date];

    

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

    [dateFormatter setCalendar: [NSCalendar autoupdatingCurrentCalendar]];

    

    if ([nowComponents year] != [dateComponets year]) {

            [dateFormatter setDateFormat:@"MM-dd-yyyy"];

             return [dateFormatter stringFromDate:date];

    }

      int nowHour = (int)[nowComponents hour];

    int days_ago = ((int)time + 3600*(24-nowHour))/(3600*24);

    

    if (days_ago == 0){

        [dateFormatter setDateFormat:@"HH:mm"];

        return [dateFormatter stringFromDate:date];

    }else if(days_ago == 1) {

                    return @"Yesterday";

          }else{

        

            [dateFormatter setDateFormat:@"MM-dd"];

     

        return [dateFormatter stringFromDate:date];

    }

}