+ (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;
}