/**
1.今年
1> 今天
* 1分内: 刚刚
* 1分~59分内:xx分钟前
* 大于60分钟:xx小时前
2> 昨天
* 昨天 xx:xx
3> 其他
* xx-xx xx:xx
2.非今年
1> xxxx-xx-xx xx:xx
*/
- (NSString *)created_at
{
NSDateFormatter *fmt = [[NSDateFormatteralloc] init];
// 如果是真机调试,转换这种欧美时间,需要设置locale
fmt.locale = [[NSLocalealloc] initWithLocaleIdentifier:@"en_US"];
/** _created_at = @"Tue Sep 30 17:06:25 +0600 2014"; */
// 设置日期格式(声明字符串里面每个数字和单词的含义)
// E:星期几
// M:月份
// d:几号(这个月的第几天)
// H:24小时制的小时
// m:分钟
// s:秒
// y:年
fmt.dateFormat =@"EEE MMM dd HH:mm:ss Z yyyy";
// _created_at = @"Tue Sep 30 17:06:25 +0600 2014";
// 微博的创建日期
NSDate *createDate = [fmt dateFromString:_created_at];
// 当前时间
NSDate *now = [NSDatedate];
// 日历对象(方便比较两个日期之间的差距)
NSCalendar *calendar = [NSCalendarcurrentCalendar];
// NSCalendarUnit枚举代表想获得哪些差值
NSCalendarUnit unit =NSCalendarUnitYear | NSCalendarUnitMonth |NSCalendarUnitDay | NSCalendarUnitHour |NSCalendarUnitMinute | NSCalendarUnitSecond;
// 计算两个日期之间的差值
NSDateComponents *cmps = [calendar components:unit fromDate:createDate toDate:now options:0];
if ([createDate isThisYear]) { // 今年
if ([createDate isYesterday]) { // 昨天
fmt.dateFormat = @"昨天 HH:mm";
return [fmt stringFromDate:createDate];
} else if ([createDateisToday]) { // 今天
if (cmps.hour >=1) {
return [NSStringstringWithFormat:@"%d小时前", (int)cmps.hour];
} else if (cmps.minute >= 1) {
return [NSStringstringWithFormat:@"%d分钟前", (int)cmps.minute];
} else {
return @"刚刚";
}
} else { //今年的其他日子
fmt.dateFormat = @"MM-dd HH:mm";
return [fmt stringFromDate:createDate];
}
} else { // 非今年
fmt.dateFormat =@"yyyy-MM-dd HH:mm";
return [fmt stringFromDate:createDate];
}
}