iOS-NSDate (Extension)
来源:互联网 发布:常见网络协议 编辑:程序博客网 时间:2024/05/29 15:23
/** * 判断某个时间是否为今年 */- (BOOL)isThisYear{ NSCalendar *calendar = [NSCalendar currentCalendar]; // 获得某个时间的年月日时分秒 NSDateComponents *dateCmps = [calendar components:NSCalendarUnitYear fromDate:self]; NSDateComponents *nowCmps = [calendar components:NSCalendarUnitYear fromDate:[NSDate date]]; return dateCmps.year == nowCmps.year;}/** * 判断某个时间是否为昨天 */- (BOOL)isYesterday{ NSDate *now = [NSDate date]; // date == 2014-04-30 10:05:28 --> 2014-04-30 00:00:00 // now == 2014-05-01 09:22:10 --> 2014-05-01 00:00:00 NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; fmt.dateFormat = @"yyyy-MM-dd"; // 2014-04-30 NSString *dateStr = [fmt stringFromDate:self]; // 2014-10-18 NSString *nowStr = [fmt stringFromDate:now]; // 2014-10-30 00:00:00 NSDate *date = [fmt dateFromString:dateStr]; // 2014-10-18 00:00:00 now = [fmt dateFromString:nowStr]; NSCalendar *calendar = [NSCalendar currentCalendar]; NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay; NSDateComponents *cmps = [calendar components:unit fromDate:date toDate:now options:0]; return cmps.year == 0 && cmps.month == 0 && cmps.day == 1;}/** * 判断某个时间是否为今天 */- (BOOL)isToday{ NSDate *now = [NSDate date]; NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; fmt.dateFormat = @"yyyy-MM-dd"; NSString *dateStr = [fmt stringFromDate:self]; NSString *nowStr = [fmt stringFromDate:now]; return [dateStr isEqualToString:nowStr];}@end- (NSString *)created_at{ NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; // 如果是真机调试,转换这种欧美时间,需要设置locale fmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; // 设置日期格式(声明字符串里面每个数字和单词的含义) // E:星期几 // M:月份 // d:几号(这个月的第几天) // H:24小时制的小时 // m:分钟 // s:秒 // y:年 fmt.dateFormat = @"EEE MMM dd HH:mm:ss Z yyyy";// _created_at = @"Tue Sep 30 17:06:25 +0800 2014"; // 微博的创建日期 NSDate *createDate = [fmt dateFromString:_created_at]; // 当前时间 NSDate *now = [NSDate date]; // 日历对象(方便比较两个日期之间的差距) NSCalendar *calendar = [NSCalendar currentCalendar]; // NSCalendarUnit枚举代表想获得哪些差值 NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond; // 计算两个日期之间的差值 NSDateComponents *cmps = [calendar components:unit fromDate:createDate toDate:now options:0]; if ([createDate isThisYear]) { // 今年 if ([createDate isYesterday]) { // 昨天 fmt.dateFormat = @"昨天 HH:mm"; return [fmt stringFromDate:createDate]; } else if ([createDate isToday]) { // 今天 if (cmps.hour >= 1) { return [NSString stringWithFormat:@"%d小时前", cmps.hour]; } else if (cmps.minute >= 1) { return [NSString stringWithFormat:@"%d分钟前", cmps.minute]; } else { return @"刚刚"; } } else { // 今年的其他日子 fmt.dateFormat = @"MM-dd HH:mm"; return [fmt stringFromDate:createDate]; } } else { // 非今年 fmt.dateFormat = @"yyyy-MM-dd HH:mm"; return [fmt stringFromDate:createDate]; }}
0 0
- iOS-NSDate (Extension)
- iOS NSDate
- ios NSDate
- iOS NSDate
- iOS NSDate
- IOS NSDate
- iOS NSDate
- IOS NSDate
- iOS NSDate
- iOS nsdate
- ios NSDate
- iOS NSDate
- IOS NSDate
- ios extension
- OC第七天 --- NSDate Category Extension Protocol
- ios 操作日期NSDate
- iOS NSDate日期加减
- iOS NSDate日期加减
- SSH和BootStrap-table分页
- 手机九宫格滑动解锁方法种数(389112种)
- 递归算法(recursion algorithm)
- 10.Oracle数据库SQL开发之 理解空值
- UIScrollerView 实现轮播图功能
- iOS-NSDate (Extension)
- 11.Oracle数据库SQL开发之 禁止显示重复行
- spark RDD的元素顺序(ordering)测试
- 用Python制作Powerpoint演示文稿
- Android开发面试题(二)
- iOS-自定义cell步骤总结
- OPENFILER操作
- 黑马程序员——多线程(上)
- Maven学习 (六) 搭建多模块企业级项目