我正在将nsdate转换为实际格式,如“Just Now”,“Yesterday”,“一周前”,“一个月前”,“一年前”,“日期不是这样”
我已经写了以下mehtod,它的工作很棒
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSDate *placeDate = [self.details valueForKey:@"date"];
NSTimeInterval timeSince = [placeDate timeIntervalSinceNow];
NSLog(@"%f", timeSince);
self.dateFormatter = [[NSDateFormatter alloc] init] ;
[self.dateFormatter setTimeZone:[NSTimeZone defaultTimeZone]];
[self.dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en"] ];
[self.dateFormatter setTimeZone:[NSTimeZone defaultTimeZone]];
if (timeSince > -60) {
cell.myDate.text = [NSString stringWithFormat:@"Just Now"];
}
else if (timeSince <= -60 && timeSince > -3600){
[self.dateFormatter setTimeStyle:NSDateFormatterShortStyle];
cell.myDate.text = [ self.dateFormatter stringFromDate:[self.details valueForKey:@"date"]];
}
else if (timeSince <= -3600 && timeSince > -86400){
[self.dateFormatter setTimeStyle:NSDateFormatterShortStyle];
cell.myDate.text = [ self.dateFormatter stringFromDate:[self.details valueForKey:@"date"]];
}
else if (timeSince <= -86400 && timeSince > -604800){
cell.myDate.text = [NSString stringWithFormat:@"Yesterday"];
}
else if (timeSince <= -604800 && timeSince > -2592000){
[self.dateFormatter setDateFormat:@"EEEE"];
cell.myDate.text = [ self.dateFormatter stringFromDate:[self.details valueForKey:@"date"]];
}
else if (timeSince <= -2592000 && timeSince > -31536000){
[self.dateFormatter setDateFormat:@"yyyy/M/d"];
cell.myDate.text = [ self.dateFormatter stringFromDate:[self.details valueForKey:@"date"]];
}
[self.dateFormatter setDateFormat:@"yyyy/M/d"];
cell.myDate.text = [ self.dateFormatter stringFromDate:[self.details valueForKey:@"date"]];
else {
[self.dateFormatter setDateFormat:@"yyyy/M/d"];
cell.myDate.text = [ self.dateFormatter stringFromDate:[self.details valueForKey:@"date"]];
}
return cell;
}
但是我的问题是我试图让它改变相对时间如果日期从新的一天中午12:00开始
例如,如果我添加一个新日期,可以说在凌晨2点它会给我格式字符串“Just Now”
但是直到第二天凌晨2点才会改变,所以我必须等待24小时才会改变!!
并且我希望它将格式字符串更改为“昨天”,即使新的一天开始,这意味着如果时间变为中午12点而不是等到24小时后才从添加日期开始。
所以任何人都可以帮我解决这个问题