ios中的时间设置

作者: 快乐的tomato | 来源:发表于2017-08-22 17:22 被阅读41次

    最进做的项目用到了关于时间的知识点,下面将学习的成果总结一下,大部分有借鉴别人的。
    一、将后台返回的时间戳转换成时间

     //时间的格式设置
     NSDateFormatter* formatter = [[NSDateFormatter alloc] init];//实例化一个NSDateFormatter对象
     [formatter setDateStyle:NSDateFormatterMediumStyle];//// 显示"中等"的日期、时间风格
     [formatter setTimeStyle:NSDateFormatterShortStyle];
     [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//设定时间格式,这里可以设置成自己需要的格式
    
     NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:[news.addtime doubleValue]/1000];
     NSLog(@"changTime  = %@",confromTimesp);
            
     NSString *timeString=[formatter stringFromDate:confromTimesp];
     _timeLab.text=timeString;
    

    不过一般都写到一个方法里

    //将后台返回的时间戳转换成自己想要的时间格式
    - (NSString *)timeWithTimeIntervalString:(NSString *)timeString
    {
        //时间戳转时间,时间的格式设置
        NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
        [formatter setDateStyle:NSDateFormatterMediumStyle];
        [formatter setTimeStyle:NSDateFormatterShortStyle];
        [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
        
        NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:[timeString doubleValue]/1000];
    //    NSLog(@"changTime  = %@",confromTimesp);
        
        NSString *time=[formatter stringFromDate:confromTimesp];
        
        return time;
    }
    
    

    补充:
    参考博客NSDateFormatterStyle 几种取值的区别

    NSDateFormatterStyle几种取值样式  
          NSDateFormatterNoStyle  
            // 例如: (其实就是空白的,不显示)  
          NSDateFormatterShortStyle  
            // 例如:下午7:00 | 15/5/19  
          NSDateFormatterMediumStyle  
            // 例如:下午7:00:00 | 2013年5月19日  
          NSDateFormatterLongStyle  
            // 例如:GMT +8下午7:00:00 | 2013年5月19日  
           NSDateFormatterFullStyle  
            // 例如:中国标准时间下午7:00:00 | 2013年5月19日 星期日  
    

    二、根据今天的时间推出前几天或者后几天的时间

    //获取时间
    调用方法
    model.dateStr = [self GetDay:[NSDate date] index:i];
    /*
    index = 0是获取今天的时间
    index = 1是获取明天的日期
    以此往后推
    */
    - (NSString *)GetDay:(NSDate *)aDate index:(NSInteger)index{
        NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
        NSDateComponents *components = [gregorian components:NSCalendarUnitWeekday | NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:aDate];
        [components setDay:([components day]+index)];
        
        NSDate *beginningOfWeek = [gregorian dateFromComponents:components];
        NSDateFormatter *dateday = [[NSDateFormatter alloc] init];
        [dateday setDateFormat:@"MM-dd"];
        return [dateday stringFromDate:beginningOfWeek];
    }
    

    三、根据时间确定星期几

    model.weekStr = [self getTheDayOfTheWeekByDateString:[NSString stringWithFormat:@"2017-%@",model.dateStr]];
    
    //根据用户输入的时间(dateString)确定当天是星期几,输入的时间格式 yyyy-MM-dd ,如 2015-12-18
    -(NSString *)getTheDayOfTheWeekByDateString:(NSString *)dateString{
        
        NSDateFormatter *inputFormatter=[[NSDateFormatter alloc]init];
        
        [inputFormatter setDateFormat:@"yyyy-MM-dd"];
        
        NSDate *formatterDate=[inputFormatter dateFromString:dateString];
        
        NSDateFormatter *outputFormatter=[[NSDateFormatter alloc]init];
        
        [outputFormatter setDateFormat:@"EEEE-MMMM-d"];
        
        NSString *outputDateStr=[outputFormatter stringFromDate:formatterDate];
        
        NSArray *weekArray=[outputDateStr componentsSeparatedByString:@"-"];
        
        return [weekArray objectAtIndex:0];
    }
    

    相关文章

      网友评论

        本文标题:ios中的时间设置

        本文链接:https://www.haomeiwen.com/subject/qyfcdxtx.html