最进做的项目用到了关于时间的知识点,下面将学习的成果总结一下,大部分有借鉴别人的。
一、将后台返回的时间戳转换成时间
//时间的格式设置
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];
}