swift 版本
static func handleCreateTime(_ createTimeStr : String) -> String {
// 創(chuàng)建時(shí)間格式化對(duì)象
let dateFm = DateFormatter()
dateFm.dateFormat = "EEE MM dd HH:mm:ss Z yyyy"
dateFm.locale = Locale(identifier: "en")
// 字符串轉(zhuǎn)化成date類(lèi)型
guard let createTime = dateFm.date(from: createTimeStr) else {
return ""
}
// 計(jì)算創(chuàng)建時(shí)間和當(dāng)前時(shí)間的時(shí)間差
let interval = Int(Date().timeIntervalSince(createTime))
guard interval > 60 else {
return "剛剛"
}
// 獲取日歷對(duì)象
let cdar = Calendar.current
// 判斷是不是昨天
guard !cdar.isDateInYesterday(createTime) else {
dateFm.dateFormat = "昨天 HH:mm"
return dateFm.string(from: createTime)
}
guard interval > 60 * 60 else {
return "\(interval / 60)分鐘前"
}
guard interval > 60 * 60 * 24 else {
return "\(interval / 60 / 60)小時(shí)前"
}
// 判讀是不是相差一年
let cmps = cdar.dateComponents([.year], from: createTime, to: Date()).year
guard cmps! > 1 else {
dateFm.dateFormat = "MM-dd HH:mm"
return dateFm.string(from: createTime)
}
dateFm.dateFormat = "yyyy-MM-dd HH:mm"
return dateFm.string(from: createTime)
}
OC版本 -- 寫(xiě)在 NSString 的分類(lèi)中
- (NSString *) handleCreateTime {
// 創(chuàng)建時(shí)間格式化對(duì)象
NSDateFormatter *dateFm = [[NSDateFormatter alloc] init];
dateFm.dateFormat = @"EEE MM dd HH:mm:ss Z yyyy";
dateFm.locale = [NSLocale localeWithLocaleIdentifier:@"en"];
// 字符串轉(zhuǎn)化成date類(lèi)型
NSDate *createTime = [dateFm dateFromString:self];
// 計(jì)算創(chuàng)建時(shí)間和當(dāng)前時(shí)間的時(shí)間差
NSTimeInterval interval = [[NSDate date] timeIntervalSinceDate:createTime];
if (interval < 60) {
return @"剛剛";
}
// 獲取日歷對(duì)象
NSCalendar *cdar = [NSCalendar currentCalendar];
// 判斷是不是昨天
if ([cdar isDateInYesterday:createTime]) {
dateFm.dateFormat = @"昨天 HH:mm";
return [dateFm stringFromDate:createTime];
}
if (interval < 60 * 60) {
return [NSString stringWithFormat:@"%ld分鐘前",(NSInteger)interval];
}
if (interval < 60 * 60 * 24) {
return [NSString stringWithFormat:@"%ld小時(shí)前",(NSInteger)interval/ 60 / 60];
}
// 判讀是不是相差一年
NSDateComponents *cmps = [cdar components:NSCalendarUnitYear fromDate:createTime toDate:[NSDate date] options:0];
if (cmps.year < 1) {
dateFm.dateFormat = @"MM-dd HH:mm";
return [dateFm stringFromDate:createTime];
}
dateFm.dateFormat = @"yyyy-MM-dd HH:mm";
return [dateFm stringFromDate:createTime];
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者