当前日期时间的获取和字符串的截取拼接前、替换 。。。

今天下午就计算这个时间折腾了我一个下午 ,好好总结 ,记住 

     NSDate *currentdate = [NSDate date];    //获取当前时间 

    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];  //初始化时间格式符 

    [formatter setDateFormat:@"HH"];      //设置时间格式符的格式 ,我这里只是想获取今天几点用于计算 

    

    NSDateFormatter *formatter1 = [[NSDateFormatter alloc]init];

    [formatter1 setDateFormat:@"dd"];     //我这里只是想获取今天几号用于计算 

    

    NSString *currentDateStr1 = [formatter1 stringFromDate:currentdate];//根据时间格式符获取时间

    

    NSInteger dataNow = [currentDateStr1 integerValue]; //转成NSInteger类型

   

    NSString *currenthourStr = [formatter stringFromDate:currentdate];

    NSInteger hourNow = [currenthourStr integerValue];



   

    //TimeStop = "2016-12-07T18:15:00";   我服务器给的时间 给了个T 不然也不要字符串这么多操作

    if (_model.TimeStop!=nil ) {  //确认获取的model里面有数据

        NSArray *array1 = [_model.TimeStop componentsSeparatedByString:@"-"];  // 以“-”字符为分割线切割 第一部分为 2016,第二部分为 12 第三部分为                                                                                          07T18:15:00  三个部分组成一个array1

        NSString *yearMonthDay = [array1 objectAtIndex:2];   //选择第3部分的string 


        NSArray *dayarray = [yearMonthDay componentsSeparatedByString:@"T"];  //将07T18:15:00 分割,分割线为字符“T”, 第一部分为07 第二部分                                                                                               为 18:15:00   两个部分组成一个dayarray

        NSInteger day = [[dayarray firstObject]integerValue];      // 07为服务器给我的 day 就是7号,转成NSInteger

        

        NSString *time = [dayarray lastObject];               //time时间为 18:15:00  

        NSArray *last = [time componentsSeparatedByString:@":"];  //再以 “:“为分割线获取我要的hour ,分成三部分 。

        NSInteger hour1 = [[last firstObject]integerValue];    // 第一部分为我要的hour 转成NSInteger

        

        

        NSInteger leaveDay = day -dataNow;   //得到剩余天数

        NSInteger leaveHour = hour1 - hourNow; //得到剩余hour

        

        NSString *endstr1 = [_model.TimeStop stringByReplacingOccurrencesOfString:@"T" withString:@" "]; //将服务器上的T用空格替换2016-12-07 18:15:00

        

        NSArray *endarray = [endstr1 componentsSeparatedByString:@":"];    

        NSString *str2 = [endarray firstObject];    //获得2016-12-07 18

        NSString *str3 = [endarray objectAtIndex:1];     获得15

        

        NSString *endstr2 = [str2 stringByAppendingString:@":"];      //追加字符串: 获得2016-12-07 18:

        NSString *endstr = [endstr2 stringByAppendingString:str3];  //再追加str3  获得 2016-12-07 18:15

        

        if (leaveDay>0&&leaveHour>0) {

            _timeLabel.text = [NSString stringWithFormat:@"%@(%li%li小时)",endstr,leaveDay,leaveHour];

        }

        if (leaveDay>1&&leaveHour<0) {

            _timeLabel.text = [NSString stringWithFormat:@"%@(%li%li小时)",endstr,leaveDay-1,leaveHour+24];

        }

        if (leaveDay==1&&leaveHour<0) {

            _timeLabel.text = [NSString stringWithFormat:@"%@(%li小时)",endstr,leaveHour+24];

        }

        if (leaveDay==0&&leaveHour>0) {

            _timeLabel.text = [NSString stringWithFormat:@"%@(%li小时)",endstr,leaveHour];

        }

    }



// 常用的时间格式符  这个链接里面很全(看到的)

  http://blog.csdn.net/zhugq_1988/article/details/8498672



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值