如何在iOS中显示日期为昨天,今天,2小时



我从服务器作为json响应获得日期时间。现在,如果日期等于今天的日期,我想把它显示为今天。如果它是昨天的日期,那么我希望显示为昨天。如果时间是2小时前,那么我要用2小时来表示。请告诉我如何实现这样的功能?

in .h file:

  NSDateFormatter *commonDateFormatter;

:

-(NSString*)convertToUTCTime:(NSString*)strDate{
    NSDate *currentDate = [NSDate date];
    myDate = [commonDateFormatter dateFromString: strDate];
    NSTimeInterval distanceBetweenDates = [currentDate timeIntervalSinceDate:myDate];
    return [self stringFromTimeInterval:distanceBetweenDates];
}
- (NSString *)stringFromTimeInterval:(NSTimeInterval)interval {
    NSInteger ti = (NSInteger)interval;
    NSInteger minutes = (ti / 60) % 60;
    NSInteger hours = (ti / 3600);
    if (hours > 24) {
        NSInteger days = hours/24;
        if (days > 30) {
           NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
           [dateFormatter setDateFormat:@"EEE d MMM, h:mm a"];
           //[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"IST"]];
            NSString *daydate = [dateFormatter stringFromDate:myDate];
            return daydate;
        }
        else{
        return [NSString stringWithFormat:@" %2ldd",(long)days];
        }
    }else{
        if (hours == 0 && minutes < 1) {
            return [NSString stringWithFormat:@"Today"];
        }
        else if (hours == 0 && minutes < 60){
            return [NSString stringWithFormat:@"%2ldm ",(long)minutes];
        }
        else{
        return [NSString stringWithFormat:@" %2ldh",(long)hours];
        }
    }
}
  1. 使用NSDateFormatter将JSON转换为NSDate link
  2. 获取当前日期
  3. 使用日历组件获取月、周、日、小时间隔单位的两天之间的组件:fromDate: toDate: link
  4. 比较两天是现在还是过去链接
  5. 然后显示组件。

最新更新