GitHub

时间都去哪了?

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

-(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);
    

 

posted @ 2016-07-08 11:09  windsSunShine  阅读(210)  评论(0编辑  收藏  举报