计算时间差,可返回天,时分秒等等

方法的定义

#import <Foundation/Foundation.h>
@interface UserCommon : NSObject
/// 计算消息发出的时间差
+ (NSString *)getMessageDateCompare:(NSString *)strDate;

@end

方法的实现

/// 计算消息发出的时间差
+ (NSString *)getMessageDateCompare:(NSString *)strDate{
    // 获取现在的时间
    NSDate *now = [NSDate date];
    // 创建时间管理器
    NSDateFormatter *fmt =[[NSDateFormatter alloc]init];
 
    /*  1. 按照这个时间格式将时间截取成字符串
      根据你时间字符串格式 规定时间格式
      yyyy-MM-dd HH:mm:ss/yyyy-MM-dd /EEE MMM dd HH:mm:ss Z yyyy(Tue Sep 30 17:06:25 +0800 2014)
    */
    fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";

    /* 2. 将时间字符串转化成时间*/
    NSDate *fromdate=[fmt dateFromString:strDate];
    
    /* 3.创建个日历 进行比较时间的间隔*/
    NSCalendar *calendar = [NSCalendar currentCalendar];
    // 确定返回什么时间的的参数(是个枚举值,你可以取你想要的格式,年月日,时分秒,周,星期等)
    NSCalendarUnit unit = NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
    // 两个时间点距离的时间段
    NSDateComponents *cmps = [calendar components:unit fromDate: fromdate toDate:now options:0];
 
    // 返回的时分秒 (这里你也可以直接返回一个NSUInteger类型的数字)
    if (cmps.day >=1) {
        return [NSString stringWithFormat:@"%zd天前",cmps.day];
    }else if(cmps.hour >= 1){
        return [NSString stringWithFormat:@"%zd小时前",cmps.hour];
    }else if(cmps.minute >= 1){
        return [NSString stringWithFormat:@"%zd分钟前",cmps.minute];
    }else{
        return [NSString stringWithFormat:@"%zd秒前",cmps.second];
    }
}

方法的调用

// 时间处理
    if ([[dict objectForKey:@"SEND_TIME"] isEqual:[NSNull null]]) {
        [cell.messageDate removeFromSuperview];
    }else{
        
        cell.messageDate.text = [UserCommon getMessageDateCompare:[dict objectForKey:@"SEND_TIME"]];
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容