34、[|34、[ iOS ] 与当前时间比较(显示-昨天、刚刚、今天等)

【34、[|34、[ iOS ] 与当前时间比较(显示-昨天、刚刚、今天等)】和当前时间比较
1)1分钟以内 显示 : 刚刚
2)1小时以内 显示 : X分钟前
3)今天或者昨天 显示 : 今天 09:30 昨天 09:30

  1. 今年 显示 : 09-12
  2. 大于本年 显示 : 2013-09-09
- (NSString *)formateDate:(NSString *)dateString {@try {// ------实例化一个NSDateFormatter对象 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //这里的格式必须和DateString格式一致NSDate * nowDate = [NSDate date]; // ------将需要转换的时间转换成 NSDate 对象 NSDate * needFormatDate = [dateFormatter dateFromString:dateString]; // ------取当前时间和转换时间两个日期对象的时间间隔 NSTimeInterval time = [nowDate timeIntervalSinceDate:needFormatDate]; NSLog(@"time----%f",time); // ------再然后,把间隔的秒数折算成天数和小时数:NSString *dateStr = [[NSString alloc] init]; if (time<=60) {//1分钟以内的dateStr = @"刚刚"; }else if(time<=60*60){//一个小时以内的int mins = time/60; dateStr = [NSString stringWithFormat:@"%d分钟前",mins]; }else if(time<=60*60*24){//在两天内的[dateFormatter setDateFormat:@"YYYY-MM-dd"]; NSString * need_yMd = [dateFormatter stringFromDate:needFormatDate]; NSString *now_yMd = [dateFormatter stringFromDate:nowDate]; [dateFormatter setDateFormat:@"HH:mm"]; if ([need_yMd isEqualToString:now_yMd]) { //在同一天 dateStr = [NSString stringWithFormat:@"今天 %@",[dateFormatter stringFromDate:needFormatDate]]; }else{ //昨天 dateStr = [NSString stringWithFormat:@"昨天 %@",[dateFormatter stringFromDate:needFormatDate]]; } }else {[dateFormatter setDateFormat:@"yyyy"]; NSString * yearStr = [dateFormatter stringFromDate:needFormatDate]; NSString *nowYear = [dateFormatter stringFromDate:nowDate]; if ([yearStr isEqualToString:nowYear]) { //在同一年 [dateFormatter setDateFormat:@"MM-dd"]; dateStr = [dateFormatter stringFromDate:needFormatDate]; }else{ [dateFormatter setDateFormat:@"yyyy-MM-dd"]; dateStr = [dateFormatter stringFromDate:needFormatDate]; } }return dateStr; } @catch (NSException *exception) { return @""; }}

    推荐阅读