IOS 日期的簡潔格式展示,ios展示
首先我要解釋一下標題的意義,日期的簡潔格式展示,之所以簡介,是因為讓人一目瞭然,不需要思考是什麼時候。
在詳細一點就是我們在朋友圈中 所看到的時間格式。
例如:剛剛 -幾分鐘前-幾小時前等等。
今天這裡帶來的是一個簡單的類別。
方便實用。
以及簡單的實際應用。
先看看一看類別是什麼樣子的
.h
#import <Foundation/Foundation.h>@interface NSDate (CXExtension)-(NSDateComponents *)dateFrom:(NSDate *)from;-(BOOL)isThisYear;-(BOOL)isToday;-(BOOL)isYesterday;@end
.m
#import "NSDate+CXExtension.h"@implementation NSDate (CXExtension)-(NSDateComponents *)dateFrom:(NSDate *)from{ //日曆 NSCalendar *calendar = [NSCalendar currentCalendar]; NSCalendarUnit unit = NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond; return [calendar components:unit fromDate:from toDate:self options:0 ];}//判斷是否為今年-(BOOL)isThisYear{ NSCalendar * calendar = [NSCalendar currentCalendar]; NSInteger nowYear = [calendar component:NSCalendarUnitYear fromDate:[NSDate date]]; NSInteger selfYear = [calendar component:NSCalendarUnitYear fromDate:self]; return selfYear == nowYear; }//判讀是否為今天-(BOOL)isToday{ NSDateFormatter * formatter = [[NSDateFormatter alloc]init]; formatter.dateFormat = @"yyyy-MM-dd"; NSString * nowDate = [formatter stringFromDate:[NSDate date]]; NSString * selfDate = [formatter stringFromDate:self]; return [nowDate isEqualToString:selfDate]; }//判斷是否為昨天-(BOOL)isYesterday{ NSDateFormatter * formatter = [[NSDateFormatter alloc]init]; formatter.dateFormat = @"yyyy-MM-dd"; NSDate * nowDate = [formatter dateFromString:[formatter stringFromDate:[NSDate date]]]; NSDate * selfdate = [formatter dateFromString:[formatter stringFromDate:self]]; NSCalendar * calendar = [NSCalendar currentCalendar]; NSDateComponents * unit = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:selfdate toDate:nowDate options:0]; return unit.year == 0 && unit.month == 0 && unit.day == 1; }@end
下面的實力所展現的效果:
當時間為去年時 顯示全部時間格式
當時間為今年時分為以下情況
當時間為今天是判斷具體時間
產生幾小時前
幾分鐘前
剛剛的顯示格式
當時間為昨天是 顯示昨天以及時分秒
當時間既不是今天又不是昨天時
顯示除年以外的所有時間格式
-(NSString *)create_time{ NSDateFormatter * formatter = [[NSDateFormatter alloc]init]; formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; NSDate * creat = [formatter dateFromString:_create_time]; if (creat.isThisYear) { if (creat.isToday) { NSDateComponents * unit = [creat dateFrom:creat]; if (unit.hour > 1) { return [NSString stringWithFormat:@"%zd小時前",unit.hour]; }else if (unit.minute > 1){ return [NSString stringWithFormat:@"%zd分鐘前",unit.minute]; }else{ return @"剛剛"; } }else if (creat.isYesterday){ formatter.dateFormat = @"昨天 HH:mm:ss"; return[formatter stringFromDate:creat]; }else{ formatter.dateFormat = @"MM-dd HH:mm:ss"; return [formatter stringFromDate:creat]; } } else{ return[formatter stringFromDate:creat]; }}