清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
//这个方法写在.h文件里面方便调用
+(NSString *)getMessageDateStringFromTimeInterval:(NSTimeInterval)TimeInterval andNeedTime:(BOOL)needTime
{
NSDate *date = [NSDate dateWithTimeIntervalSince1970:TimeInterval];
return [MTChatTimeFormateTool getMessageDateString:date andNeedTime:needTime];
}
+ (NSString*)getMessageDateString:(NSDate*)messageDate andNeedTime:(BOOL)needTime
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale systemLocale]];
[formatter setTimeZone:[NSTimeZone systemTimeZone]];
[formatter setDateFormat:@"YYYY/MM/dd HH:mm"];
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *components = [cal components:NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSWeekdayCalendarUnit fromDate:messageDate];
NSDate *msgDate = [cal dateFromComponents:components];
NSString*weekday = [MTChatTimeFormateTool getWeekdayWithNumber:components.weekday];
components = [cal components:NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSWeekdayCalendarUnit fromDate:[NSDate date]];
NSDate *today = [cal dateFromComponents:components];
if([today isEqualToDate:msgDate]){
if (needTime) {
[formatter setDateFormat:@"今天 HH:mm"];
}
else{
[formatter setDateFormat:@"今天"];
}
return [formatter stringFromDate:messageDate];
}
components.day -= 1;
NSDate *yestoday = [cal dateFromComponents:components];
if([yestoday isEqualToDate:msgDate]){
if (needTime) {
[formatter setDateFormat:@"昨天 HH:mm"];
}
else{
[formatter setDateFormat:@"昨天"];
}
return [formatter stringFromDate:messageDate];
}
for (int i = 1; i <= 6; i++) {
components.day -= 1;
NSDate *nowdate = [cal dateFromComponents:components];
if([nowdate isEqualToDate:msgDate]){
if (needTime) {
[formatter setDateFormat:[NSString stringWithFormat:@"%@ HH:mm",weekday]];
}
else{
[formatter setDateFormat:[NSString stringWithFormat:@"%@",weekday]];
}
return [formatter stringFromDate:messageDate];
}
}
while (1) {
components.day -= 1;
NSDate *nowdate = [cal dateFromComponents:components];
if ([nowdate isEqualToDate:msgDate]) {
if (!needTime) {
[formatter setDateFormat:@"YYYY/MM/dd"];
}
return [formatter stringFromDate:messageDate];
break;
}
}
}
//1代表星期日、如此类推
+(NSString *)getWeekdayWithNumber:(int)number
{
switch (number) {
case 1:
return @"星期日";
break;
case 2:
return @"星期一";
break;
case 3:
return @"星期二";
break;
case 4:
return @"星期三";
break;
case 5:
return @"星期四";
break;
case 6:
return @"星期五";
break;
case 7:
return @"星期六";
break;
default:
return @"";
break;
}
}