ios中的时间设置

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

 //时间的格式设置
 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中的时间设置)