和當前時間比較
1)1分鐘以內(nèi) 顯示 : 剛剛
2)1小時以內(nèi) 顯示 : X分鐘前
3)今天或者昨天 顯示 : 今天 09:30 昨天 09:30
- 今年 顯示 : 09-12
- 大于本年 顯示 : 2013-09-09
- (NSString *)formateDate:(NSString *)dateString
{
@try {
// ------實例化一個NSDateFormatter對象
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//這里的格式必須和DateString格式一致
NSDate * nowDate = [NSDate date];
// ------將需要轉(zhuǎn)換的時間轉(zhuǎn)換成 NSDate 對象
NSDate * needFormatDate = [dateFormatter dateFromString:dateString];
// ------取當前時間和轉(zhuǎn)換時間兩個日期對象的時間間隔
NSTimeInterval time = [nowDate timeIntervalSinceDate:needFormatDate];
NSLog(@"time----%f",time);
// ------再然后胡陪,把間隔的秒數(shù)折算成天數(shù)和小時數(shù):
NSString *dateStr = [[NSString alloc] init];
if (time<=60) { //1分鐘以內(nèi)的
dateStr = @"剛剛";
}else if(time<=60*60){ //一個小時以內(nèi)的
int mins = time/60;
dateStr = [NSString stringWithFormat:@"%d分鐘前",mins];
}else if(time<=60*60*24){ //在兩天內(nèi)的
[dateFormatter setDateFormat:@"YYYY-MM-dd"];
NSString * need_yMd = [dateFormatter stringFromDate:needFormatDate];
NSString *now_yMd = [dateFormatter stringFromDate:nowDate];
[dateFormatter setDateFormat:@"HH:mm"];
if ([need_yMd isEqualToString:now_yMd]) {
//在同一天
dateStr = [NSString stringWithFormat:@"今天 %@",[dateFormatter stringFromDate:needFormatDate]];
}else{
//昨天
dateStr = [NSString stringWithFormat:@"昨天 %@",[dateFormatter stringFromDate:needFormatDate]];
}
}else {
[dateFormatter setDateFormat:@"yyyy"];
NSString * yearStr = [dateFormatter stringFromDate:needFormatDate];
NSString *nowYear = [dateFormatter stringFromDate:nowDate];
if ([yearStr isEqualToString:nowYear]) {
//在同一年
[dateFormatter setDateFormat:@"MM-dd"];
dateStr = [dateFormatter stringFromDate:needFormatDate];
}else{
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
dateStr = [dateFormatter stringFromDate:needFormatDate];
}
}
return dateStr;
}
@catch (NSException *exception) {
return @"";
}
}