NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:_model.finish_date];
NSString * name = [self dateToDetailOld:date];
其中在将字符串转换成date的时候, 发现dateFromString:的返回值为nil.
看了下代码没问题,然后网上查了一下,发现是因为12小时制和24小时制的原因,
如果后台返回的是24小时制的格式,那么@"yyyy-MM-dd HH:mm:ss"中的HH必须是大写,如果是小写,然后返回的24小时制,就会返回nil
同时mark一下项目中用到的一个方法,
通过后台返回的时间来计算距离当前时间多久
<pre>
#pragma mark -根据出生日期返回详细的年龄(精确到天)
-(NSString *)dateToDetailOld:(NSDate *)bornDate{
//获得当前系统时间
NSDate *currentDate = [NSDate date];
//创建日历(格里高利历)
NSCalendar *calendar = [NSCalendar currentCalendar];
//设置component的组成部分
NSUInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond ;
//按照组成部分格式计算出生日期与现在时间的时间间隔
NSDateComponents *date = [calendar components:unitFlags fromDate:bornDate toDate:currentDate options:0];
//判断年龄大小,以确定返回格式
if( [date year] > 0)
{
return [NSString stringWithFormat:(@"%ld年前"),(long)[date year]];
}
else if([date month] >0)
{
return [NSString stringWithFormat:(@"%ld月前"),(long)[date month]];
}
else if([date day]>0)
{
return [NSString stringWithFormat:(@"%ld天前"),(long)[date day]];
}
else if([date hour]>0){
return [NSString stringWithFormat:(@"%ld小时前"),(long)[date hour]];
}
else if([date minute]>0){
return [NSString stringWithFormat:(@"%ld分前"),(long)[date hour]];
}
else{
return [NSString stringWithFormat:(@"%ld秒前"),(long)[date hour]];
}
}
NSString转NSData
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...