時(shí)間戳:時(shí)間戳是指格林威治時(shí)間1970年01月01日00時(shí)00分00秒(北京時(shí)間1970年01月01日08時(shí)00分00秒)起至現(xiàn)在的總秒數(shù)
本文對(duì)時(shí)間戳的處理主要仿照微信聊天對(duì)時(shí)間的顯示,根據(jù)時(shí)間戳判斷出今天,昨天,前天,以及以往的時(shí)間.
1. iOS 獲取當(dāng)前時(shí)間戳的方法:
NSTimeInterval timeNow=[[NSDate date] timeIntervalSince1970];
2.由時(shí)間戳轉(zhuǎn)換到標(biāo)準(zhǔn)時(shí)間格式的工具類
#import <UIKit/UIKit.h>
@interface TimeStampToString : NSObject
///由時(shí)間戳轉(zhuǎn)為時(shí)間格式
+(NSString *)timeStampToString:(CGFloat)timeStamp;
@end
#import "TimeStampToString.h"
@implementation TimeStampToString
+(NSString *)timeStampToString:(CGFloat)timeStamp {
NSString *timeString = [[NSString alloc]init];
//當(dāng)前時(shí)間的時(shí)間戳
NSTimeInterval timeNow=[[NSDate date] timeIntervalSince1970];
//將傳來的時(shí)間戳轉(zhuǎn)為標(biāo)準(zhǔn)時(shí)間格式
NSTimeInterval time = timeStamp;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:time];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *tempStr= [dateFormatter stringFromDate:date];
timeString = [NSString stringWithFormat:@"%@年%@月%@日 %@",[tempStr substringWithRange:NSMakeRange(0,4)],[tempStr substringWithRange:NSMakeRange(5,2)],[tempStr substringWithRange:NSMakeRange(8,2)],[tempStr substringWithRange:NSMakeRange(11,8)]];
//當(dāng)前時(shí)間
NSDate *nowDate = [NSDate date];
NSString *nowDateStr= [dateFormatter stringFromDate:nowDate];
//時(shí)間戳判斷邏輯
if ([[timeString substringWithRange:NSMakeRange(0, 4)] isEqualToString:[nowDateStr substringWithRange:NSMakeRange(0, 4)]]) {
if ([[timeString substringWithRange:NSMakeRange(5,2)] isEqualToString:[nowDateStr substringWithRange:NSMakeRange(5,2)]]) {
float daySubtract = [[nowDateStr substringWithRange:NSMakeRange(8,2)] floatValue] - [[timeString substringWithRange:NSMakeRange(8,2)] floatValue];
if (daySubtract < 3) {
if (daySubtract == 0) {
NSString *string = [NSString stringWithFormat:@"今天 %@",[timeString substringWithRange:NSMakeRange(11,6)]];
return string;
}else if (daySubtract == 1) {
NSString *string = [NSString stringWithFormat:@"昨天 %@",[timeString substringWithRange:NSMakeRange(11,6)]];
return string;
}else {
if ((timeNow - time) > 3600*24*2) {
return timeString;
}else {
NSString *string = [NSString stringWithFormat:@"前天 %@",[timeString substringWithRange:NSMakeRange(11,6)]];
return string;
}
}
}else{
return timeString;
}
}else {
return timeString;
}
}else {
return timeString;
}
}
@end