IOS仿QQ空間時間顯示

來源:互聯網
上載者:User

標籤:qq空間時間顯示

最近項目有類似QQ空間展示動態UI,模仿了QQ空間的時間顯示,在此記錄,以備查閱。

這是QQ空間的ui:

時間顯示為:

 1.今天-->今天 xx:xx(今天 15:39)

  2.昨天-->昨天 xx:xx(昨天 06:00)

  3.前天-->前天 xx:xx(前天 19:00)

  4.同一年, 例如:同一年的一月三號-->01-03 xx:xx(01-03 12:29)

  5.不在同一年 --> xxxx-xx-xx(2014-12-12)

程式運行效果如下,以下為簡單的測試,沒有ui介面:


下面的代碼是在網上已有代碼的基礎上更改而來,原代碼點此查看
/** *  仿QQ空間時間顯示 *  @param string eg:2015年5月24日 02時21分30秒 */- (NSString *)format:(NSString *)string{    NSDateFormatter *inputFormatter= [[NSDateFormatter alloc] init];    [inputFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] ];    [inputFormatter setDateFormat:@"yyyy年MM月dd日 HH時mm分ss秒"];    NSDate*inputDate = [inputFormatter dateFromString:string];    //NSLog(@"startDate= %@", inputDate);        NSDateFormatter *outputFormatter= [[NSDateFormatter alloc] init];    [outputFormatter setLocale:[NSLocale currentLocale]];    [outputFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];    //get date str    NSString *str= [outputFormatter stringFromDate:inputDate];    //str to nsdate    NSDate *strDate = [outputFormatter dateFromString:str];    //修正8小時的差時    NSTimeZone *zone = [NSTimeZone systemTimeZone];    NSInteger interval = [zone secondsFromGMTForDate: strDate];    NSDate *endDate = [strDate  dateByAddingTimeInterval: interval];    //NSLog(@"endDate:%@",endDate);    NSString *lastTime = [self compareDate:endDate];    NSLog(@"lastTime = %@",lastTime);    return str;}-(NSString *)compareDate:(NSDate *)date{        NSTimeInterval secondsPerDay = 24 * 60 * 60;        //修正8小時之差    NSDate *date1 = [NSDate date];    NSTimeZone *zone = [NSTimeZone systemTimeZone];    NSInteger interval = [zone secondsFromGMTForDate: date1];    NSDate *localeDate = [date1  dateByAddingTimeInterval: interval];        //NSLog(@"nowdate=%@\nolddate = %@",localeDate,date);    NSDate *today = localeDate;    NSDate *yesterday,*beforeOfYesterday;    //今年    NSString *toYears;        toYears = [[today description] substringToIndex:4];        yesterday = [today dateByAddingTimeInterval: -secondsPerDay];    beforeOfYesterday = [yesterday dateByAddingTimeInterval: -secondsPerDay];        // 10 first characters of description is the calendar date:    NSString *todayString = [[today description] substringToIndex:10];    NSString *yesterdayString = [[yesterday description] substringToIndex:10];    NSString *beforeOfYesterdayString = [[beforeOfYesterday description] substringToIndex:10];        NSString *dateString = [[date description] substringToIndex:10];    NSString *dateYears = [[date description] substringToIndex:4];        NSString *dateContent;    if ([dateYears isEqualToString:toYears]) {//同一年        //今 昨 前天的時間        NSString *time = [[date description] substringWithRange:(NSRange){11,5}];        //其他時間        NSString *time2 = [[date description] substringWithRange:(NSRange){5,11}];        if ([dateString isEqualToString:todayString]){            dateContent = [NSString stringWithFormat:@"今天 %@",time];            return dateContent;        } else if ([dateString isEqualToString:yesterdayString]){            dateContent = [NSString stringWithFormat:@"昨天 %@",time];            return dateContent;        }else if ([dateString isEqualToString:beforeOfYesterdayString]){            dateContent = [NSString stringWithFormat:@"前天 %@",time];            return dateContent;        }else{            return time2;        }    }else{        return dateString;    }}

IOS仿QQ空間時間顯示

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.