时间简化

来源:互联网 发布:protobuf java v3 编辑:程序博客网 时间:2024/06/05 06:13

一:将需要展示的时间转为时间戳,然后调用时间简化方法

            NSString *time=@"将要展示的时间";            NSDateFormatter *formatter = [[NSDateFormatter alloc] init];            [formatter setDateStyle:NSDateFormatterMediumStyle];            [formatter setTimeStyle:NSDateFormatterShortStyle];            [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];            NSDate* date = [formatter dateFromString:time];            time=[self ConvertMessageTime:(long long)[date timeIntervalSince1970]];
- (NSString *)ConvertMessageTime:(long long)secs {    NSString *timeText = nil;    NSDate *messageDate = [NSDate dateWithTimeIntervalSince1970:secs];    //    DebugLog(@"messageDate==>%@",messageDate);    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];    [formatter setDateFormat:@"yyyy-MM-dd"];    NSString *strMsgDay = [formatter stringFromDate:messageDate];    NSDate *now = [NSDate date];    NSString *strToday = [formatter stringFromDate:now];    NSDate *yesterday = [[NSDate alloc] initWithTimeIntervalSinceNow:-(24 * 60 * 60)];    NSString *strYesterday = [formatter stringFromDate:yesterday];    NSString *_yesterday = nil;    if ([strMsgDay isEqualToString:strToday]) {        [formatter setDateFormat:@"HH':'mm"];    } else if ([strMsgDay isEqualToString:strYesterday]) {        _yesterday = NSLocalizedStringFromTable(@"Yesterday", @"RongCloudKit", nil);        //[formatter setDateFormat:@"HH:mm"];    }    if (nil != _yesterday) {        timeText = _yesterday; //[_yesterday stringByAppendingFormat:@" %@", timeText];    } else {        timeText = [formatter stringFromDate:messageDate];    }    return timeText;}

二:

NSString *time=@"将要展示的时间";time=[self ConvertNewtimeWithtime:time];
-(NSString *)ConvertNewtimeWithtime:(NSString *)time{    NSDateFormatter *fmt=[[NSDateFormatter alloc]init];    fmt.dateFormat=@"EEE MMM dd HH:mm:ss Z yyyy";    fmt.locale=[[NSLocale alloc]initWithLocaleIdentifier:@"en_US"];    NSDate *create=[fmt dateFromString:_created_at];    if (create.isToday) {        if (create.deltaWithNow.hour>=1) {            return [NSString stringWithFormat:@"%ld小时前",(long)create.deltaWithNow.hour];        }        else if (create.deltaWithNow.minute>=1)        {            return [NSString stringWithFormat:@"%ld分钟前",(long)create.deltaWithNow.minute];        }        else        {            return @"刚刚";        }    }    else if(create.isYesterday)    {        fmt.dateFormat=@"昨天 HH:mm";        return [fmt stringFromDate:create];    }    else if(create.isToyear)    {        fmt.dateFormat=@"MM-dd HH:mm";        return [fmt stringFromDate:create];    }    else    {   fmt.dateFormat=@"yyyy-MM-dd HH:mm";        return [fmt stringFromDate:create];    }}

给时间类增加一个分类 ,如图
这里写图片描述
这里写图片描述
这里写图片描述

-(BOOL)isToday{    NSCalendar *calendar=[NSCalendar currentCalendar];    int unit=NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay ;    NSDateComponents *nowdate= [calendar components:unit fromDate:[NSDate date]];    NSDateComponents *components= [calendar components:unit fromDate:self];    return (nowdate.year== components.year)&&(nowdate.month== components.month)&&(nowdate.day== components.day);}-(BOOL)isYesterday{    NSDateFormatter *fmt=[[NSDateFormatter alloc]init];    fmt.dateFormat=@"yyyy-MM-dd";    NSString *strdate =[fmt stringFromDate:[NSDate date]];    NSDate *nowdate=[fmt dateFromString:strdate];    NSString *strcreatdate =[fmt stringFromDate:[NSDate date]];    NSDate *creatdate=[fmt dateFromString:strcreatdate];    int unit=NSCalendarUnitDay;    NSCalendar *calendar=[NSCalendar currentCalendar];    NSDateComponents *comps= [calendar components:unit fromDate:creatdate toDate:nowdate options:0];    return comps.day==1;}-(BOOL)isToyear{    NSCalendar *calendar=[NSCalendar currentCalendar];    int unit=NSCalendarUnitYear ;    NSDateComponents *nowdate= [calendar components:unit fromDate:[NSDate date]];    NSDateComponents *components= [calendar components:unit fromDate:self];    return (nowdate.year== components.year);}-(NSDateComponents *)deltaWithNow{    int unit=NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond ;    NSCalendar *calendar=[NSCalendar currentCalendar];    return  [calendar components:unit fromDate:self toDate:[NSDate date] options:0];}
0 0
原创粉丝点击