码迷,mamicode.com
首页 > 其他好文 > 详细

从网络请求的时间戳 转换方法 (+++本实例 时间戳遵从 GMT 1970 +++)

时间:2015-06-03 23:08:43      阅读:499      评论:0      收藏:0      [点我收藏+]

标签:

 

 

 

 

 

(NSString*)timeStamp  //从网络上请求的时间戳

##############整体大致转换思路:由于.从网络上请求的时间戳timeStamp是 GMT 1970

                       1.求出时间戳 与当前日期 的秒差  (当前日期差为 思路把当前日期相对于GMT 1970 的秒差)

                 2.求出时间戳 与当前日期的日期差 (通过NSDateFormatter)  

            

 

 

NSString * returnDateString=nil;  //转换后的用来显示的 时间字符串
        
        NSDate *confromTimesp =[NSDate dateWithTimeIntervalSince1970:[timeStamp integerValue]];//创建一个timeStamp对应对的NSDate类型的对象
        NSDate *nowdate = [NSDate date];                                       //创建一个当前日期的NSDate对象
        NSDateFormatter *formatter = [[NSDateFormatter alloc]init];                   //创建一个日期格式转换(去掉中间特殊符号以及空格,目的是为了转换后再使用integerValue转换)
        [formatter setDateFormat:@"YYYYMMddHHmmss"]; 

 

                    
        NSString *nowdateString = [formatter stringFromDate:nowdate];                //将当前日期通过格式转换为相对应的字符串
        
        NSString *addtime = [formatter stringFromDate:confromTimesp];                //同时将时间戳的对应的时间通过日期格式转换为
        
        NSTimeInterval nowDateInterval = [[NSDate date] timeIntervalSince1970];            
        
        NSTimeInterval twoTimeInterval = nowDateInterval - [newsDetailsModle.addtime integerValue]; //时间戳 对应的时间 和当日时间 的秒差
        
        
        NSInteger  nowDateInteger = [nowdateString integerValue];
        NSInteger  addTimeInteger = [addtime integerValue];
        NSInteger  twoTimeInterV = nowDateInteger - addTimeInteger;                 //时间戳对应的日期   与当日对应的日期 差
        if (twoTimeInterV>2000000) {                                  //当日期差  大于2000000 (就是大于两天的候)就显示时间戳对应的日期 下面 +8000000是为了转换为中国日期
            returnDateString = [NSString stringWithFormt:@"%@",addTimeInteger+8000000];                    
            NSLog(@"%@",addtime);
            
        }else if(twoTimeInterV>1000000&&twoTimeInterV<2000000){                  //日期差为一天 返回字符串显示为昨天 @"昨天"
            
            returnDateString = @"昨天";
            NSLog(@"昨天");
            
        }else {
            
            if (twoTimeInterval>3600) {                                              //根据时间秒差进行计算在这一天中的时间差(大于一小时)
                NSInteger fffff = (NSInteger)twoTimeInterval;
                NSInteger hour =fffff/3600;                                     
                returnDateString = [NSString stringWithFormat:@"%ld 小时之前",hour];
            }else{
                
                NSInteger minit =(NSInteger)twoTimeInterval%60;
                returnDateString = [NSString stringWithFormat:@"%ld 分钟之前",minit];           /一小时之内
                
            }
            
            
            
        }
        
       return   returnDateString;

从网络请求的时间戳 转换方法 (+++本实例 时间戳遵从 GMT 1970 +++)

标签:

原文地址:http://www.cnblogs.com/zhouyubo/p/4550280.html

(1)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!