美文网首页
iOS开发时间与时间戳转换(毫秒级)

iOS开发时间与时间戳转换(毫秒级)

作者: 铁头娃_e245 | 来源:发表于2019-04-19 11:15 被阅读0次

    ⬇️时间戳转化为时间⬇️

    //将时间戳转换为时间 (以毫秒为单位)
    //参数:时间戳
    //返回值格式:2019-04-19 10:33:35.886
    - (NSString *)getTimestamp:(NSString*)mStr{
        
        NSTimeInterval interval    =[mStr doubleValue] / 1000.0;
        
        NSDate *date              = [NSDate dateWithTimeIntervalSince1970:interval];
        
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        
        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
        
        [formatter setTimeZone:[NSTimeZone timeZoneWithName:@"Asia/Beijing"]];
        
        NSString *dateString      = [formatter stringFromDate: date];
        
        NSLog(@"时间戳对应的时间是:%@",dateString);
        
        return dateString;
        
    }
    
    //获取当前时间 (以毫秒为单位)
    //返回值格式:2019-04-19 10:33:35.886
    - (NSString *)getNowTimeTimestamp{
        
        NSDate *datenow = [NSDate date];//现在时间,你可以输出来看下是什么格式
        
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        
        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
        
        [formatter setTimeZone:[NSTimeZone timeZoneWithName:@"Asia/Beijing"]];
        
        NSString *dateString      = [formatter stringFromDate: datenow];
        
        NSLog(@"当前时间戳对应的时间是:%@",dateString);
        
        return dateString;
    }
    

    ⬇️时间转化为时间戳⬇️

    //将时间转化成 时间戳
    //返回值格式:1555642454396
    - (NSInteger)timeSwitchTimestamp:(NSString *)formatTime{
        
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        
        [formatter setDateStyle:NSDateFormatterMediumStyle];
        
        [formatter setTimeStyle:NSDateFormatterShortStyle];
        
        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"]; //(@"YYYY-MM-dd hh:mm:ss") ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
        
        NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
        
        [formatter setTimeZone:timeZone];
        
        NSDate* date = [formatter dateFromString:formatTime]; //------------将字符串按formatter转成nsdate
        
        //时间转时间戳的方法:
        NSInteger timeSp = [[NSNumber numberWithDouble:[date timeIntervalSince1970]*1000] integerValue];
        
        NSLog(@"将某个时间转化成 时间戳timeSp:%ld",(long)timeSp); //时间戳的值
        
        return timeSp;
        
    }
    
    //获取当前时间戳 (以毫秒为单位)
    //返回值格式:1555642454396
    //这里注意要获取完全部数值后在(long)强转, 如果(long)[datenow timeIntervalSince1970]*1000 这么写是先强转在*1000,就是秒级别的数据了
    - (NSString *)nowTimeSwitchTimestamp{
        
        NSDate *datenow = [NSDate date];//现在时间
        
        //这里如果long不够用,就用(long long)
        NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)([datenow timeIntervalSince1970]*1000)];  
        
        return timeSp;
    }
    

    相关文章

      网友评论

          本文标题:iOS开发时间与时间戳转换(毫秒级)

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