• 时间都去哪了?


           最近一个项目涉及到时间的问题,尤其是当前时间和获得的时间戳的转化,发送当前的时间戳给服务器。界面展示的时候呢,展示的是分钟和秒。这样就各种计算求解天、小时、分钟、秒了,虽说简单,但是真正的写一下还是要方便许多,所以我封装了一个小方法,分享下:【个人使用,如有更优化的方法,还望不吝赐教】话不多说上代码:

    -(NSString * )timeDifference:(NSString *)timeStamp {
        
        
    //     将时间戳转换成字符串
        
        NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:[timeStamp intValue]];
    
        
        NSTimeZone * zone = [NSTimeZone systemTimeZone];
        
        NSInteger interval =[zone secondsFromGMTForDate:confromTimesp];
        
        NSDate *date1 = [confromTimesp dateByAddingTimeInterval:interval];
        
        
        
            NSDate * dateNow = [self getCurrentTime];
        
            NSLog(@"时间戳对应的%@",date1);
        
            NSLog(@"当前时间对应的%@",dateNow);
        
            NSTimeInterval time=[dateNow timeIntervalSinceDate:date1];
        
        int days=((int)time)/(3600*24);
        int hours=((int)time)%(3600*24)/3600;
        int minute=((int)time)%(3600*24)/60-hours*60;
        int second = (int)time - minute*60 - hours*3600 -days*24*3600;
        NSString *dateContent=[[NSString alloc] initWithFormat:@"%i天%i小时%i分钟%i秒",days,hours,minute,second];
        
        
    //    NSString * differenceTime = [NSString stringWithFormat:@"%i分%i秒",minute,second];
        
        NSLog(@"日期之间的时间差:%@",dateContent);
    
        return dateContent;
        
    }

    另一种方法就比较简单了,因为时间戳就是显示的秒数,所以只要用时间戳直接进行做差处理,然后在计算一下处理后的时间戳就是相差的时间

    #pragma mark  -------   方法2直接进行时间戳的计算
    
    
    -(NSString * )timeDiffient:(NSString *)timestamp{
        
        
        
        NSDate * sendate = [NSDate date];
        
        NSString * date2  = [NSString stringWithFormat:@"%ld",(long)[sendate  timeIntervalSince1970]];
        
        NSLog(@"当前的时间戳为:%@",date2);
    
        float diffientValue  = [date2 floatValue] - [timestamp floatValue];
        
        
        int days=((int)diffientValue)/(3600*24);
        int hours=((int)diffientValue)%(3600*24)/3600;
        int minute=((int)diffientValue)%(3600*24)/60-hours*60;
        int second = (int)diffientValue - minute*60 - hours*3600 -days*24*3600;
        
        NSString * s = [NSString stringWithFormat:@"%i天%i小时%i分%i秒",days,hours,minute,second];
        
        
        return s;
        
    }

    这个方法是获取一个时间戳,将这个时间戳和当前时间作差,获得时间间隔,返回值就比较随意了,我是把所有的都返回了,根据需要进行删减吧。发送当前时间戳也很简单,直接一句代码:

          NSDate * sendate = [NSDate date];
        
          NSString * date2  = [NSString stringWithFormat:@"%ld",(long)[sendate  timeIntervalSince1970]];
        
          NSLog(@"当前的时间戳为:%@",date2);
        
  • 相关阅读:
    sdibt 1251 进化树问题
    hdu 2014 位运算
    poj 3254 状态压缩dp
    hdu 5040bfs+优先队列 需要存状态
    zoj 3812 状压dp
    C++标准库:bitset 用法整理&&zoj 3812
    BZOJ 2572 高速公路
    BZOJ 1036 树的统计
    BZOJ 1035 Risk
    BZOJ 1034 泡泡堂
  • 原文地址:https://www.cnblogs.com/windsSunShine/p/5652705.html
Copyright © 2020-2023  润新知