iOS ISO8601格式的时间日期字符串转换成NSDate

+ (NSDate *)dateFromISO8601String:(NSString *)string {

    if (!string) return nil;

    

    struct tm tm;

    time_t t;

    

    strptime([string cStringUsingEncoding:NSUTF8StringEncoding], "%Y-%m-%dT%H:%M:%S%z", &tm);

    tm.tm_isdst = -1;

    t = mktime(&tm);

    

//    return [NSDate dateWithTimeIntervalSince1970:t]; // 零时区

  return [NSDate dateWithTimeIntervalSince1970:t + [[NSTimeZone localTimeZone] secondsFromGMT]];//东八区

}


//根据获取到的时间判断时间间隔 如 “刚刚”,“一分钟前”,“一小时前”等;

//获取时间 是用上面的方法获取的

+(NSString *)JudgmentTimeIntervalWithISOTime:(NSString *)timeStr{

    NSDate *theDate = [self dateFromISO8601String:timeStr];

    

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

    

    [dateFormatter setDateFormat:@"MM-dd HH:mm"];

    

    NSString * timeString = nil;

    

    NSTimeInterval cha =  0 - [theDate timeIntervalSinceDate:[NSDate date]];

    

    if (cha/3600 < 1) {

        

        timeString = [NSString stringWithFormat:@"%f", cha/60];

        

        timeString = [timeString substringToIndex:timeString.length-7];

        

        int num= [timeString intValue];


        if (num <= 1) {

            

            timeString = [NSString stringWithFormat:@"刚刚"];

            

        }else{

            

            timeString = [NSString stringWithFormat:@"%@分钟前", timeString];

            

        }

        

    }

    

    if (cha/3600 > 1 && cha/86400 < 1) {

        

        timeString = [NSString stringWithFormat:@"%f", cha/3600];

        

        timeString = [timeString substringToIndex:timeString.length-7];

        

        timeString = [NSString stringWithFormat:@"%@小时前", timeString];

        

    }

    

    if (cha/86400 > 1)

        

    {

        

        timeString = [NSString stringWithFormat:@"%f", cha/86400];

        

        timeString = [timeString substringToIndex:timeString.length-7];

        

        int num = [timeString intValue];


        if (num < 2) {

            

            timeString = [NSString stringWithFormat:@"昨天"];

            

        }else{

            timeString =[dateFormatter stringFromDate:theDate];

            

        }

    }

    return timeString;

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值