iOS 10位、13位时间戳

额,关键词锁定---->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;

}   
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 极光官网设置 登录极光官网,完成注册、登录。 选择开发者服务->极光推送->立即体验极光推送.png 创建新的应用...
    天空像天空一样蓝阅读 5,040评论 2 2
  • 到了12月,禾仔基本上就没怎么去上学了。持续的咳嗽怎么看都看不好,一度让我们怀疑是不是得了哮喘。进行各种靠谱和不靠...
    cccowly阅读 1,599评论 1 0
  • 这两天,绞尽脑汁攒了篇演讲词。
    老水冘阅读 1,839评论 0 0
  • 最近往郑州跑的着实有点频繁,上次来郑州是探病,这次是自己来看病 。一个人,坐着火车,腋下揣着39°的体温计,...
    赶时间呐阅读 2,047评论 0 0