+ (NSString *)formatShowDateTime:(NSDate *)needDate
{
if (needDate == nil) {
return @"";
}
@try {
//實例化一個NSDateFormatter對象
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSDate * nowDate = [NSDate date];
///// 將需要轉換的時間轉換成 NSDate 對象
///// 取當前時間和轉換時間兩個日期對象的時間間隔
///// 這里的NSTimeInterval 并不是對象,是基本型,其實是double類型,是由c定義的: typedef double NSTimeInterval;
NSTimeInterval time = [nowDate timeIntervalSinceDate:needDate];
//// 再然后,把間隔的秒數折算成天數和小時數:
NSString *dateStr = @"";
if (time<=60) { //// 1分鐘以內的
dateStr = @"1分鐘前";
}else if(time<=60*60){ //// 一個小時以內的
int mins = time/60;
dateStr = [NSString stringWithFormat:@"%d分鐘前",mins];
}else if(time<=60*60*24*2){ //// 在兩天內的
[dateFormatter setDateFormat:@"YYYY/MM/dd"];
NSString * need_yMd = [dateFormatter stringFromDate:needDate];
NSString *now_yMd = [dateFormatter stringFromDate:nowDate];
[dateFormatter setDateFormat:@"HH:mm"];
if ([need_yMd isEqualToString:now_yMd]) {
//// 在同一天
// dateStr = [NSString stringWithFormat:@"今天 %@",[dateFormatter stringFromDate:needDate]];
dateStr = [NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:needDate]];
}else{
//// 昨天
// dateStr = [NSString stringWithFormat:@"昨天 %@",[dateFormatter stringFromDate:needDate]];
[dateFormatter setDateFormat:@"dd"];
NSString *beforeYesDay = [dateFormatter stringFromDate:needDate];
NSString *yesDay = [dateFormatter stringFromDate:nowDate];
NSInteger num = [yesDay integerValue] - [beforeYesDay integerValue];
if (num == 1) {
dateStr = @"昨天";
}else{
[dateFormatter setDateFormat:@"MM月dd日"];
dateStr = [dateFormatter stringFromDate:needDate];
}
}
}else {
[dateFormatter setDateFormat:@"yyyy"];
NSString * yearStr = [dateFormatter stringFromDate:needDate];
NSString *nowYear = [dateFormatter stringFromDate:nowDate];
if ([yearStr isEqualToString:nowYear]) {
//// 在同一年
[dateFormatter setDateFormat:@"MM月dd日"];
dateStr = [dateFormatter stringFromDate:needDate];
}else{
[dateFormatter setDateFormat:@"yyyy年MM月dd日"];
dateStr = [dateFormatter stringFromDate:needDate];
}
}
return dateStr;
}
@catch (NSException *exception) {
return @"";
}
}
將日期轉成具體的幾分鐘前,幾小時前,昨天。。。
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內容
- 簡介 NSURLSession 是蘋果公司在2013的 WWDC大會上隨 iOS7 一起發布的,是 NSURLC...
- 下面選了最近十年里,十位名人所做的畢業演講。那么多的故事與經歷,其實只想告訴你一件事: 面對迷茫和不確定的未來,我...
- 一般來說,喜歡站立的人,比喜歡躺著或或坐著的人,身材更好。與躺著的姿勢相比,站姿所消耗的能量要多出10%。而單腿站...
- 在開發中,我們經常使用快捷鍵 option + 鼠標點擊某個關鍵字或方法,查看相應的文檔信息,如下圖,是對Stri...