您的位置:首页 > 其它

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

2016-12-07 17:27 567 查看
今天下午就计算这个时间折腾了我一个下午 ,好好总结 ,记住 

     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]; //转
4000
成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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐