计算时间差,可返回天,时分秒等等
2016-06-22 本文已影响424人
我的梦想之路
方法的定义
#import <Foundation/Foundation.h>
@interface UserCommon : NSObject
/// 计算消息发出的时间差
+ (NSString *)getMessageDateCompare:(NSString *)strDate;
@end
方法的实现
/// 计算消息发出的时间差
+ (NSString *)getMessageDateCompare:(NSString *)strDate{
// 获取现在的时间
NSDate *now = [NSDate date];
// 创建时间管理器
NSDateFormatter *fmt =[[NSDateFormatter alloc]init];
/* 1. 按照这个时间格式将时间截取成字符串
根据你时间字符串格式 规定时间格式
yyyy-MM-dd HH:mm:ss/yyyy-MM-dd /EEE MMM dd HH:mm:ss Z yyyy(Tue Sep 30 17:06:25 +0800 2014)
*/
fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";
/* 2. 将时间字符串转化成时间*/
NSDate *fromdate=[fmt dateFromString:strDate];
/* 3.创建个日历 进行比较时间的间隔*/
NSCalendar *calendar = [NSCalendar currentCalendar];
// 确定返回什么时间的的参数(是个枚举值,你可以取你想要的格式,年月日,时分秒,周,星期等)
NSCalendarUnit unit = NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
// 两个时间点距离的时间段
NSDateComponents *cmps = [calendar components:unit fromDate: fromdate toDate:now options:0];
// 返回的时分秒 (这里你也可以直接返回一个NSUInteger类型的数字)
if (cmps.day >=1) {
return [NSString stringWithFormat:@"%zd天前",cmps.day];
}else if(cmps.hour >= 1){
return [NSString stringWithFormat:@"%zd小时前",cmps.hour];
}else if(cmps.minute >= 1){
return [NSString stringWithFormat:@"%zd分钟前",cmps.minute];
}else{
return [NSString stringWithFormat:@"%zd秒前",cmps.second];
}
}
方法的调用
// 时间处理
if ([[dict objectForKey:@"SEND_TIME"] isEqual:[NSNull null]]) {
[cell.messageDate removeFromSuperview];
}else{
cell.messageDate.text = [UserCommon getMessageDateCompare:[dict objectForKey:@"SEND_TIME"]];
}