猫猫学iOS 之微博项目实战(9)微博模型之时间相关重要操作,判断刚刚,昨天,今年等等
2015-09-14 13:48
441 查看
猫猫分享,必须精品
原创文章,欢迎转载。转载请注明:翟乃玉的博客
地址:http://blog.csdn.net/u013357243
—-因为本人黑苹果,系统时间乱跳 时间显示的不准,但是代码没有问题
一月 January 简写 Jan.
二月 February 简写 Feb.
三月 March 简写 Mar.
四月 April 简写 Apr.
五月 May 简写 May
六月 June 简写 Jun.
七月 July 简写 Jul.
八月 August 简写 Aug.
九月September 简写Sep.
十月 October 简写 Oct.
十一月November 简写 Nov.
十二月December 简写 Dec.
星期一: Mon.=Monday
星期二: Tue.=Tuesday
星期三: Wed.=Wednesday
星期四: Thu.=Thursday
星期五: Fri.=Friday
星期六: Sat.=Saturday
星期天: Sun.=Sunday
原创文章,欢迎转载。转载请注明:翟乃玉的博客
地址:http://blog.csdn.net/u013357243
一:效果
—-因为本人黑苹果,系统时间乱跳 时间显示的不准,但是代码没有问题
二:实现代码
/** 1.今年 1> 今天 * 1分内: 刚刚 * 1分~59分内:xx分钟前 * 大于60分钟:xx小时前 2> 昨天 * 昨天 xx:xx 3> 其他 * xx-xx xx:xx 2.非今年 1> xxxx-xx-xx xx:xx */ - (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 +0600 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]; } }
时间分类来做判断
这里用到了时间分类来做判断是否是今天啦,是否是明天啦之类的东西,总之,这个很强大了// // NSDate+Extension.m // 黑马微博2期 // // Created by apple on 14-10-18. // Copyright (c) 2014年 heima. All rights reserved. // #import "NSDate+Extension.h" @implementation NSDate (Extension) /** * 判断某个时间是否为今年 */ - (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
三:补充
星期和月份英文一月 January 简写 Jan.
二月 February 简写 Feb.
三月 March 简写 Mar.
四月 April 简写 Apr.
五月 May 简写 May
六月 June 简写 Jun.
七月 July 简写 Jul.
八月 August 简写 Aug.
九月September 简写Sep.
十月 October 简写 Oct.
十一月November 简写 Nov.
十二月December 简写 Dec.
星期一: Mon.=Monday
星期二: Tue.=Tuesday
星期三: Wed.=Wednesday
星期四: Thu.=Thursday
星期五: Fri.=Friday
星期六: Sat.=Saturday
星期天: Sun.=Sunday
相关文章推荐
- iOS启动时如何添加引导页面 小demo
- ios一个工程的多个target
- IOS学习笔记62--ios info plist配置说明
- 【IOS】 TableView and sectionIndex 的使用
- iOS获取设备型号(更新到iPhone6,6p)
- iOS开发 -- GET 和 POST请求(同步异步链接)
- iOS UTC秒数时间戳和日期的互相转换[转载]
- iOS 9: -canOpenURL: failed for URL #
- iOS segment控件
- iOS中nil,Nil,NULL之间的区别
- IOS Label行距间隔 首行缩进的解决
- iOS 警告收录及科学快速的消除方法
- iOS之创建一个常驻线程
- 向用户征询IOS授权的五种常见设计模式
- IOS翻转动画(可来回切换图片)
- 服务器如何进入Bios
- iOS 3行代码搞定导航控制器全屏滑动返回效果
- [ios学习] ios自学必备思维导图合集
- iOS学习笔记—— xml数据解析
- iOS 拉伸图片