iOS计算时间,刚刚,几分钟前,几小时前

本文介绍了一段用于将日期字符串转换为指定格式并计算时间间隔的代码实现,包括了时间小于一分钟、一小时、一天及更长时间的格式化显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接上代码


- (NSString *)formateDate:(NSString *)dateString withFormate:(NSString *) formate

{

    

    @try {

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

        [dateFormatter setDateFormat:formate];

        

        NSDate * nowDate = [NSDate date];

        

        NSDate * needFormatDate = [dateFormatter dateFromString:dateString];

        NSTimeInterval time = [nowDate timeIntervalSinceDate:needFormatDate];

        

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

        

        NSString *dateStr = @"";

        

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

            

            dateStr = @"刚刚";

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

            

            int mins = time/60;

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

            

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

            

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

            NSString * need_yMd = [dateFormatter stringFromDate:needFormatDate];

            NSString *now_yMd = [dateFormatter stringFromDate:nowDate];

            

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

            if ([need_yMd isEqualToString:now_yMd]) {

                // 在同一天

                dateStr = [NSString stringWithFormat:@"今天 %@",[dateFormatter stringFromDate:needFormatDate]];

                NSLog(@"%@", dateStr);

            }else{

                //  昨天

                dateStr = [NSString stringWithFormat:@"昨天 %@",[dateFormatter stringFromDate:needFormatDate]];

            }

        }else {

            

            [dateFormatter setDateFormat:@"yyyy"];

            NSString * yearStr = [dateFormatter stringFromDate:needFormatDate];

            NSString *nowYear = [dateFormatter stringFromDate:nowDate];

            

            if ([yearStr isEqualToString:nowYear]) {

                //  在同一年

                [dateFormatter setDateFormat:@"MMdd"];

                dateStr = [dateFormatter stringFromDate:needFormatDate];

            }else{

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

                dateStr = [dateFormatter stringFromDate:needFormatDate];

            }

            

        }

        

        return dateStr;

    }

    @catch (NSException *exception) {

        return @"";

    }

    

    

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值