在項目開發中從服務器中請求下來的時間想要處理
5442649-839a4412bc967bb8.jpg
創建 Time 類 繼承NSObject
Time.h
#import <Foundation/Foundation.h>
@interface Time : NSObject
// 處理后返回
+ (NSString *)handleDate:(NSString *)dateString;
// 從服務器請求下來的
+ (NSString *)timeIntervalToDate:(NSString *)timeinterval;
@end
Time.m
#import "Time.h"
@implementation Time
/*
傳入時間與現在時間差距在60秒以內,輸出@“剛剛”
1個小時以內,輸出@“**分鐘前”
差距1-24小時以內,輸出@“**小時前”
差距24小時到48小時,輸出昨天
差距大于48小時,輸出@“完整日期”
*/
// 處理后返回
+ (NSString *)handleDate:(NSString *)dateString {
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
NSDate *date = [dateFormatter dateFromString:dateString];
NSTimeInterval timeInterval = date.timeIntervalSinceNow;
double time = -(timeInterval - 28800);
NSString *backString;
if (time < 60 && time > 0) {
backString = @"剛剛";
} else if (time > 60 && time < 3600 ) {
int Minute = time / 60;
backString = [NSString stringWithFormat:@"%d 分鐘前",Minute];
} else if (time > 3600 && time < 86400) {
int Hour = time / 3600;
backString = [NSString stringWithFormat:@"%d 小時前",Hour];
} else if (time > 86400 && time < 172800) {
backString = [NSString stringWithFormat:@"昨天"];
} else if (time > 172800) {
dateFormatter.dateFormat = @"MM-dd HH:mm";
backString = [dateFormatter stringFromDate:date];
}
return backString;
}
// 從服務器請求下來的
+ (NSString *)timeIntervalToDate:(NSString *)timeinterval {
NSTimeInterval time = [timeinterval doubleValue]; //因為時差問題要加8小時 == 28800 sec
NSDate *detailDate = [NSDate dateWithTimeIntervalSince1970:time];
//實例化一個NSDateFormatter對象
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//設定時間格式,這里可以設置成自己需要的格式
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *currentDateStr = [dateFormatter stringFromDate:detailDate];
return currentDateStr;
}
@end
調用
//時間
NSString * date = [Time timeIntervalToDate:model.addtime];
cellb.time.text = [Time handleDate:date];