//处理时间的方法
dateString 可以是从model请求下来的 数据结构, 我的是从XML解析出来的 数据,有两种数据结构,所以,处理了一下,
- (NSString *)getChinaDate:(NSString *) dateString{
NSMutableArray *dateArr = [NSMutableArrayarrayWithArray:[dateString componentsSeparatedByCharactersInSet:[NSCharacterSetcharacterSetWithCharactersInString:@"-/ :"]]];
[dateArr removeObject:@""];
[dateArr removeObject:@" "];
NSMutableString *dateStr = [NSMutableStringstring];
for (int i = 0; i < dateArr.count; i++) {
[dateStr appendString:dateArr[i]];
if (i<dateArr.count-1) {
[dateStr appendString:@"/"];
}
}
NSDateFormatter *dateformatter = [[[NSDateFormatteralloc]init] autorelease];//定义NSDateFormatter用来显示格式
[dateformatter setDateFormat:@"yyyy/MM/dd/HH/mm/ss"];//设定格式
NSCalendar *cal = [NSCalendarcurrentCalendar];//定义一个NSCalendar对象
NSDate *todate = [dateformatter dateFromString:dateStr];
NSDate *today = [NSDatedate];//得到当前时间
//用来得到具体的时差
unsignedint unitFlags = NSYearCalendarUnit |NSMonthCalendarUnit | NSDayCalendarUnit |NSHourCalendarUnit | NSMinuteCalendarUnit |kCFCalendarUnitSecond;
NSDateComponents *comps = [cal components:unitFlags fromDate:todate toDate:today options:0];
if ([comps year]>0) {
return [NSStringstringWithFormat:@"%d年前",[comps year]];
}else if ([compsmonth]>0) {
return [NSStringstringWithFormat:@"%d月前",[compsmonth]];
}else if ([compsday]>0) {
return [NSStringstringWithFormat:@"%d天前",[comps day]];
}else if ([compshour]>0) {
return [NSStringstringWithFormat:@"%d小时前",[comps hour]];
}else if ([compsminute]>0) {
return [NSStringstringWithFormat:@"%d分钟前",[comps minute]];
} else {
return @"1分钟";
}
}