一、日期和時間模式
日期和時間格式由日期和時間模式字符串組成,在日期和時間模式字符串中未加引號的'A'到‘Z’和'a'到‘z’被解釋為模式字母,用來表示日期或時間。字符串元素,文本可以使用單引號(‘’)引起來使用。定義以下模式字母(所有其他字符‘A’到‘Z’,'a'到‘z’都被保留)
二、日期格式化
1、 yyyy-MM-dd HH:mm:ss 2014-12-12 12:12:122、 yyyy/MM/dd HH:mm:ss 2014/12/12 12:12:12
三、思維導圖
四、事例代碼
xzr_formatter 是自定義的靜態formatter類
//是今年
- (BOOL)xzr_isToYear{NSCalendar *calendar = [NSCalendar xzr_calendar];NSCalendarUnit unit = NSCalendarUnitYear;NSDateComponents *selfComponents = [calendar components:unit fromDate:計算的日期];NSDateComponents *nowComponents = [calendar components:unit fromDate:[NSDate date]];//年都一樣return (selfComponents.year == nowComponents.year);
}
//是今天
- (BOOL)xzr_isToday{NSCalendar *calendar = [NSCalendar xzr_calendar]; // 自定義方法獲取日歷類對象NSCalendarUnit unit = NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay; //計算的日期,如年,月,日NSDateComponents *selfComponents = [calendar components:unit fromDate:計算的日期]; NSDateComponents *nowComponents = [calendar components:unit fromDate:[NSDate date]];//現在日期return (selfComponents.year == nowComponents.year && selfComponents.month == nowComponents.month && selfComponents.day == nowComponents.day);
}
//判斷日期處理
+ (NSString *)xzr_dateString:(NSString *)string{//日期格式xzr_formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";NSDate *createDate = [xzr_formatter dateFromString:string] ;if (createDate.xzr_isToYear) {//是今年if (createDate.xzr_isToday) {//今天NSDate *nowDate = [NSDate date];NSCalendarUnit unit = NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond;NSDateComponents *components = [xzr_calendar components:unit fromDate:createDate toDate:nowDate options:NSCalendarWrapComponents ];if (components.hour >= 1) {//幾小時前return [NSString stringWithFormat:@"%ld小時前",components.hour];}else if (components.minute >=1){//幾分鐘前return [NSString stringWithFormat:@"%ld分鐘前",components.minute];}else{//剛剛return @"剛剛";}}else if (createDate.xzr_isToYestoday){//昨天xzr_formatter.dateFormat = @"昨天 HH:mm:ss";return [xzr_formatter stringFromDate:createDate];}else{xzr_formatter.dateFormat = @"MM-dd HH:mm:ss";return [xzr_formatter stringFromDate:createDate];}}else{ return string;}
}
?