时间简化
来源:互联网 发布:protobuf java v3 编辑:程序博客网 时间:2024/06/05 06:13
一:将需要展示的时间转为时间戳,然后调用时间简化方法
NSString *time=@"将要展示的时间"; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateStyle:NSDateFormatterMediumStyle]; [formatter setTimeStyle:NSDateFormatterShortStyle]; [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; NSDate* date = [formatter dateFromString:time]; time=[self ConvertMessageTime:(long long)[date timeIntervalSince1970]];
- (NSString *)ConvertMessageTime:(long long)secs { NSString *timeText = nil; NSDate *messageDate = [NSDate dateWithTimeIntervalSince1970:secs]; // DebugLog(@"messageDate==>%@",messageDate); NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd"]; NSString *strMsgDay = [formatter stringFromDate:messageDate]; NSDate *now = [NSDate date]; NSString *strToday = [formatter stringFromDate:now]; NSDate *yesterday = [[NSDate alloc] initWithTimeIntervalSinceNow:-(24 * 60 * 60)]; NSString *strYesterday = [formatter stringFromDate:yesterday]; NSString *_yesterday = nil; if ([strMsgDay isEqualToString:strToday]) { [formatter setDateFormat:@"HH':'mm"]; } else if ([strMsgDay isEqualToString:strYesterday]) { _yesterday = NSLocalizedStringFromTable(@"Yesterday", @"RongCloudKit", nil); //[formatter setDateFormat:@"HH:mm"]; } if (nil != _yesterday) { timeText = _yesterday; //[_yesterday stringByAppendingFormat:@" %@", timeText]; } else { timeText = [formatter stringFromDate:messageDate]; } return timeText;}
二:
NSString *time=@"将要展示的时间";time=[self ConvertNewtimeWithtime:time];
-(NSString *)ConvertNewtimeWithtime:(NSString *)time{ NSDateFormatter *fmt=[[NSDateFormatter alloc]init]; fmt.dateFormat=@"EEE MMM dd HH:mm:ss Z yyyy"; fmt.locale=[[NSLocale alloc]initWithLocaleIdentifier:@"en_US"]; NSDate *create=[fmt dateFromString:_created_at]; if (create.isToday) { if (create.deltaWithNow.hour>=1) { return [NSString stringWithFormat:@"%ld小时前",(long)create.deltaWithNow.hour]; } else if (create.deltaWithNow.minute>=1) { return [NSString stringWithFormat:@"%ld分钟前",(long)create.deltaWithNow.minute]; } else { return @"刚刚"; } } else if(create.isYesterday) { fmt.dateFormat=@"昨天 HH:mm"; return [fmt stringFromDate:create]; } else if(create.isToyear) { fmt.dateFormat=@"MM-dd HH:mm"; return [fmt stringFromDate:create]; } else { fmt.dateFormat=@"yyyy-MM-dd HH:mm"; return [fmt stringFromDate:create]; }}
给时间类增加一个分类 ,如图
-(BOOL)isToday{ NSCalendar *calendar=[NSCalendar currentCalendar]; int unit=NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay ; NSDateComponents *nowdate= [calendar components:unit fromDate:[NSDate date]]; NSDateComponents *components= [calendar components:unit fromDate:self]; return (nowdate.year== components.year)&&(nowdate.month== components.month)&&(nowdate.day== components.day);}-(BOOL)isYesterday{ NSDateFormatter *fmt=[[NSDateFormatter alloc]init]; fmt.dateFormat=@"yyyy-MM-dd"; NSString *strdate =[fmt stringFromDate:[NSDate date]]; NSDate *nowdate=[fmt dateFromString:strdate]; NSString *strcreatdate =[fmt stringFromDate:[NSDate date]]; NSDate *creatdate=[fmt dateFromString:strcreatdate]; int unit=NSCalendarUnitDay; NSCalendar *calendar=[NSCalendar currentCalendar]; NSDateComponents *comps= [calendar components:unit fromDate:creatdate toDate:nowdate options:0]; return comps.day==1;}-(BOOL)isToyear{ NSCalendar *calendar=[NSCalendar currentCalendar]; int unit=NSCalendarUnitYear ; NSDateComponents *nowdate= [calendar components:unit fromDate:[NSDate date]]; NSDateComponents *components= [calendar components:unit fromDate:self]; return (nowdate.year== components.year);}-(NSDateComponents *)deltaWithNow{ int unit=NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond ; NSCalendar *calendar=[NSCalendar currentCalendar]; return [calendar components:unit fromDate:self toDate:[NSDate date] options:0];}
0 0
- 时间简化
- CF574B根据m简化时间
- 时间管理 - 简化生活:复杂性定律
- 简化的ajax +时间倒计时控件
- Java|Joda-Time简化时间处理利器
- 序列(数组简化递归时间复杂度)
- 精细时间排程:从复杂到简化
- 通过正则表达式简化 JSON 时间格式转换操作
- 只管去做—用emacs的org-mode做时间管理(3.回顾、简化)
- js 根据输入具体时间倒计时(底部有简化版)
- Android 系列 2.11使用Java 8 java.time API简化日期/时间计算
- 简化再简化
- 简化Spring
- 语法简化
- ViewHolder简化
- 简化ERP
- 继续简化
- 简化路径
- iOS app性能优化的那些事
- IOS——使用ScrollView和PageController实现引导页分页效果
- android ndk c编译
- 常用的正则表达式
- java获取任意指定日期后前后任一一天
- 时间简化
- android中使用SimpleAdapter加载图片的时候容易出现的问题
- CFileDialog用法
- YTU 2918: Shape系列-5
- Java CookBook Learning Day5th--HTTP (by Tim O'Brien)
- 学习git笔记(一)
- 开发者,去搭建自己的博客系统吧
- Android Input子系统浅谈
- 多线程使用unixODBC时,必须的配置(threadintg)