nsdate转nsstring

本文介绍了一种在iOS应用中实现时间格式化的实用方法。通过使用NSDateFormatter,可以根据不同的时间间隔展示人性化的时间提示,例如“刚刚”、“几分钟前”等,并针对不同场景如当天、昨天及更早日期提供定制化的显示格式。

- (NSString *)formateDate:(NSDate *)Date

{

    @try {

        //实例化一个NSDateFormatter对象

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

        [dateFormatter setDateFormat:@"EEE MMM d HH:mm:ss Z yyyy"];

        

        NSDate * nowDate = [NSDate date];

        

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

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

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

        NSTimeInterval time = [nowDate timeIntervalSinceDate:Date];

        

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

        

        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:Date];

            NSString *now_yMd = [dateFormatter stringFromDate:nowDate];

            

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

            if ([need_yMd isEqualToString:now_yMd]) {

                //// 在同一天

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

            }else{

                ////  昨天

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

            }

        }else {

            

            [dateFormatter setDateFormat:@"yyyy"];

            NSString * yearStr = [dateFormatter stringFromDate:Date];

            NSString *nowYear = [dateFormatter stringFromDate:nowDate];

            

            if ([yearStr isEqualToString:nowYear]) {

                ////  在同一年

                [dateFormatter setDateFormat:@"MMdd"];

                dateStr = [dateFormatter stringFromDate:Date];

            }else{

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

                dateStr = [dateFormatter stringFromDate:Date];

            }

        }

        

        return dateStr;

    }

    @catch (NSException *exception) {

        return @"";

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值