您的位置:首页 > 移动开发 > IOS开发

iOS开发中如何将后台返回的时间转换为常见字串

2014-11-26 22:02 465 查看
在iOS开发中,经常需要从后台数据中获取时间,但是此时后台返回的时间格式经常是一串类似"123456789"的数字,此数字是1970年开始截至到现在的秒数,此时我们需要将其转换为可以用的格式.

模型中我定义了c_time属性,通过重写c_time的get方法中进行格式的转换.

- (NSString *)c_time{
// 1.创建时间格式化类
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// 2.设置时间的格式
// yyyy-MM-dd HH:mm:ss
#warning 注意: 如果是真机开发, 除了设置格式以外,还需要设置该格式对应的区域, 否则格式化出来的时候可能为null
formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
formatter.dateFormat = @"EEE MMM dd HH:mm:ss Z yyyy";
// 3.转换时间
NSDate *creteDate = [formatter dateFromString:_c_time];

// 4.处理时间
if ([creteDate isThisYear]) {
// 今年
if ([creteDate isToday]) {
// 今天
NSDateComponents *cmps = [creteDate deltaWithNow];

if (cmps.hour >= 1) {
formatter.dateFormat = [NSString stringWithFormat:@"%ld小时前", (long)cmps.hour];
return [formatter stringFromDate:creteDate];
}else if (cmps.minute >= 1)
{
formatter.dateFormat = [NSString stringWithFormat:@"%ld分钟前", (long)cmps.minute];
return [formatter stringFromDate:creteDate];
}else
{
return @"刚刚";
}

}else if ([creteDate isYesterday])
{
// 昨天
formatter.dateFormat = @"昨天 HH时mm分";
return [formatter stringFromDate:creteDate];
}else
{
// 其他天
formatter.dateFormat = @"MM月dd日 HH时mm分";
return [formatter stringFromDate:creteDate];
}
}else
{
// 非今年
formatter.dateFormat = @"yyyy年MM月dd日 HH时mm分";
return [formatter stringFromDate:creteDate];
}

return _c_time;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: