美文网首页
iOS 10位、13位时间戳

iOS 10位、13位时间戳

作者: iOS_July | 来源:发表于2018-05-09 11:04 被阅读2185次

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

    相关文章

      网友评论

          本文标题:iOS 10位、13位时间戳

          本文链接:https://www.haomeiwen.com/subject/kmfnrftx.html