需求
- 假设现在为2015-09-11 11:49。
- 当数据时间为2015-09-11 09:49时,显示:09:49。
- 当数据时间为2015-09-08 09:49时,显示:09-08 09:49。
- 当数据时间为2014-09-08 09:49时,显示:2014-09-08 09:49。
代码
+ (NSString *)getShowDateWithTime:(NSString *)time{
/**
传入时间转NSDate类型
*/
NSDate *timeDate = [[NSDate alloc]initWithTimeIntervalSince1970:[time longLongValue]/1000.0];
/**
初始化并定义Formatter
:returns: NSDate
*/
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm";
/**
* 使用Formatter格式化时间(传入时间和当前时间)为NSString
*/
NSString *timeStr = [dateFormatter stringFromDate:timeDate];
NSString *nowDateStr = [dateFormatter stringFromDate:[NSDate date]];
/**
* 判断前四位是不是本年,不是本年直接返回完整时间
*/
if ([[timeStr substringWithRange:NSMakeRange(0, 4)] rangeOfString:[nowDateStr substringWithRange:NSMakeRange(0, 4)]].location == NSNotFound) {
return timeStr;
}else{
/**
* 判断是不是本天,是本天返回HH:mm,不是返回MM-dd HH:mm
*/
if ([[timeStr substringWithRange:NSMakeRange(5, 5)] rangeOfString:[nowDateStr substringWithRange:NSMakeRange(5, 5)]].location != NSNotFound) {
return [timeStr substringWithRange:NSMakeRange(11, 5)];
}else{
return [timeStr substringWithRange:NSMakeRange(5, 11)];
}
}
}
网友评论