標籤:style blog io ar color os sp for on
在iOS開發中,經常需要從後台資料中擷取時間,但是此時後台返回的時間格式經常是一串類似"123456789"的數字,此數字是1970年開始截至到現在的秒數,此時我們需要將其轉換為可以用的格式.
模型中我定義了c_time屬性,通過重寫c_time的get方法中進行格式的轉換.
- (NSString *)c_time{ // 1.建立時間格式化類 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; // 2.設定時間的格式 // yyyy-MM-dd HH:mm:ss#warning 注意: 如果是真機開發, 除了設定格式以外,還需要設定該格式對應的地區, 否則格式化出來的時候可能為null formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; formatter.dateFormat = @"EEE MMM dd HH:mm:ss Z yyyy"; // 3.轉換時間 NSDate *creteDate = [formatter dateFromString:_c_time]; // 4.處理時間 if ([creteDate isThisYear]) { // 今年 if ([creteDate isToday]) { // 今天 NSDateComponents *cmps = [creteDate deltaWithNow]; if (cmps.hour >= 1) { formatter.dateFormat = [NSString stringWithFormat:@"%ld小時前", (long)cmps.hour]; return [formatter stringFromDate:creteDate]; }else if (cmps.minute >= 1) { formatter.dateFormat = [NSString stringWithFormat:@"%ld分鐘前", (long)cmps.minute]; return [formatter stringFromDate:creteDate]; }else { return @"剛剛"; } }else if ([creteDate isYesterday]) { // 昨天 formatter.dateFormat = @"昨天 HH時mm分"; return [formatter stringFromDate:creteDate]; }else { // 其他天 formatter.dateFormat = @"MM月dd日 HH時mm分"; return [formatter stringFromDate:creteDate]; } }else { // 非今年 formatter.dateFormat = @"yyyy年MM月dd日 HH時mm分"; return [formatter stringFromDate:creteDate]; } return _c_time;}
iOS開發中如何將後台返回的時間轉換為常見字串