糖糖的iOS专题我收录的代码Swift编程

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

2016-06-22  本文已影响424人  我的梦想之路

方法的定义

#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"]];
    }
上一篇下一篇

猜你喜欢

热点阅读