额,关键词锁定---->13位时间戳
一、首先讲讲10位时间戳
#pragma mark --- 获取当前时间戳
- (NSString *)getNowTime{
// 获取时间(非本地时区,需转换)
NSDate * today = [NSDate date];
NSTimeZone *zone = [NSTimeZone systemTimeZone];
NSInteger interval = [zone secondsFromGMTForDate:today];
// 转换成当地时间
NSDate *localeDate = [today dateByAddingTimeInterval:interval];
// 时间转换成时间戳
NSString *timeSp = [NSString stringWithFormat:@"%ld",(long)[localeDate timeIntervalSince1970]];//@"1517468580"
return timeSp;
}
#pragma mark --- 获取当前时间戳---10位
- (NSString *)getNowTime{
NSDate* date = [NSDate dateWithTimeIntervalSinceNow:0];//获取当前时间0秒后的时间
NSTimeInterval time=[date timeIntervalSince1970];
NSString *timeSp = [NSString stringWithFormat:@"%.0f", time];
return timeSp;
}
获取hours小时前的时间戳
#pragma mark --- 获取hours小时之前的时间戳
- (NSString *)getOldTime:(NSInteger)hours{
//得到当前的时间
NSDate * date = [NSDate date];
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
//设置时间间隔(秒)
NSTimeInterval time = hours * 60 * 60;//hours小时的秒数
//得到hours小时之前的当前时间
NSDate * lastTime = [date dateByAddingTimeInterval:-time];
// 时间转换成时间戳
NSString *timeSp = [NSString stringWithFormat:@"%ld",(long)[lastTime timeIntervalSince1970]];
return timeSp;
}
二、13位时间戳
从服务端获取到时间,确定时间确是时间戳,但却是13位。
而iOS生成的时间戳是10位!!!所以说需要进行一点转换。
#pragma mark --- 时间戳转为时间串
- (NSString *)getTimeToTimeStr:(NSInteger)nowTime{
CGFloat time = nowTime/1000.0;
NSDate * detailDate = [NSDate dateWithTimeIntervalSince1970:time];
//实例化一个NSDateFormatter对象
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
//设定时间格式,这里可以设置成自己需要的格式
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *timeStr = [dateFormatter stringFromDate:detailDate];
return timeStr;
}
获取hours小时前的时间戳
#pragma mark --- 获取当前时间戳--13位
- (NSString *)getNowTime{
//获取当前时间戳
NSDate* date = [NSDate dateWithTimeIntervalSinceNow:0];//获取当前时间0秒后的时间
NSTimeInterval time=[date timeIntervalSince1970]*1000;// *1000 是精确到毫秒,不乘就是精确到秒
NSString *timeSp = [NSString stringWithFormat:@"%.0f", time];
return timeSp;
}
#pragma mark --- 获取hours小时之前的时间戳
- (NSString *)getOldTime:(NSInteger)hours{
//得到当前的时间
NSDate * date = [NSDate date];
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
//设置时间间隔(秒)
NSInteger hoursTime = hours/8;
NSTimeInterval time = hoursTime * 60 * 60;//hours小时的秒数
//得到hours小时之前的当前时间
NSDate * lastTime = [date dateByAddingTimeInterval:-time];
// 时间转换成时间戳
NSString *timeSp = [NSString stringWithFormat:@"%ld",(long)[lastTime timeIntervalSince1970]*1000];
return timeSp;
}
网友评论