日期转成具体的几分钟前,几小时前等...

+ (NSString *)formatShowDateTime:(NSDate *)needDate {

    if (needDate == nil) {

        return @"";

    }

    

    @try {

        //实例化一个NSDateFormatter对象

        

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

        

        NSDate * nowDate = [NSDate date];

        

//          将需要转换的时间转换成 NSDate 对象

//          取当前时间和转换时间两个日期对象的时间间隔

//          这里的NSTimeInterval 并不是对象,是基本型,其实是double类型,是由c定义的:  typedef double NSTimeInterval;

        NSTimeInterval time = [nowDate timeIntervalSinceDate:needDate];

        

        再然后,把间隔的秒数折算成天数和小时数:

        

        NSString *dateStr = @"";

        

        if (time <= 60) {  1分钟以内的

            dateStr = @"1分钟内";

        }else if(time <= 60 * 60){    一个小时以内的

            

            int mins = time / 60;

            dateStr = [NSString stringWithFormat:@"%d分钟前",mins];

            

        }else if(time <= 60 * 60 * 24 * 2){   在两天内的

            

            [dateFormatter setDateFormat:@"YYYY/MM/dd"];

            NSString * need_yMd = [dateFormatter stringFromDate:needDate];

            NSString *now_yMd = [dateFormatter stringFromDate:nowDate];

            

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

            if ([need_yMd isEqualToString:now_yMd]) {// 在同一天 也就是今天


                dateStr = [NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:needDate]];

            }else{//  昨天及昨天以前

                [dateFormatter setDateFormat:@"dd"];

                NSString *beforeYesDay = [dateFormatter stringFromDate:needDate];

                NSString *yesDay = [dateFormatter stringFromDate:nowDate];

                NSInteger num = [yesDay integerValue] - [beforeYesDay integerValue];

                if (num == 1) {

                    dateStr = @"昨天";

                }else{//昨天以前

                    [dateFormatter setDateFormat:@"MM月dd日"];

                    dateStr = [dateFormatter stringFromDate:needDate];

                }

            }

        }else {

            [dateFormatter setDateFormat:@"yyyy"];

            NSString * yearStr = [dateFormatter stringFromDate:needDate];

            NSString *nowYear = [dateFormatter stringFromDate:nowDate];

            

            if ([yearStr isEqualToString:nowYear]) {//  在同一年  今年

                [dateFormatter setDateFormat:@"MM月dd日"];

                dateStr = [dateFormatter stringFromDate:needDate];

            }else{

                [dateFormatter setDateFormat:@"yyyy年MM月dd日"];

                dateStr = [dateFormatter stringFromDate:needDate];

            }

        }

        return dateStr;

    }

    @catch (NSException *exception) {

        return @"";

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值