兩個NSDate之間是可以進行比較的。 有了NSCalendar比較兩個日期就易如反掌 /** 1.今年 1> 今天 * 1分內: 剛剛 * 1分~59分內:xx分鐘前 * 大於60分鐘:xx小時前 2> 昨天 * 昨天 xx:xx 3> 其他 * xx-xx xx:xx 2.非今年 1> xxxx
兩個NSDate之間是可以進行比較的。
有了NSCalendar比較兩個日期就易如反掌
/**
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
{
// _created_at == Thu Oct 16 17:06:25 +0800 2014
// dateFormat == EEE MMM dd HH:mm:ss Z yyyy
// NSString --> NSDate
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
// 如果是真機調試,轉換這種歐美時間,需要設置locale
fmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
// 設置日期格式(聲明字元串裡面每個數字和單詞的含義)
// E:星期幾
// M:月份
// d:幾號(這個月的第幾天)
// H:24小時制的小時
// m:分鐘
// s:秒
// y:年
fmt.dateFormat = @"EEE MMM dd HH:mm:ss Z yyyy";
// 微博的創建日期
NSDate *createDate = [fmt dateFromString:_created_at];
// 當前時間
NSDate *now = [NSDate date];
// 日曆對象(方便比較兩個日期之間的差距)
NSCalendar *calendar = [NSCalendar currentCalendar];
// NSCalendarUnit枚舉代表想獲得哪些差值
NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
// 計算兩個日期之間的差值
NSDateComponents *cmps = [calendar components:unit fromDate:createDate toDate:now options:0];
HWLog(@"%@ %@ %@", createDate, now, cmps);
return _created_at;
}