iOS - NSDate分类-判断时间是否为今天,昨天,一周内,年月日

来源:互联网 发布:模仿优化 编辑:程序博客网 时间:2024/05/17 09:10
#import <Foundation/Foundation.h>@class  JYChatMessageModel;@interface NSDate (extension)//判断时间戳是否为当天,昨天,一周内,年月日+ (NSString *)timeStringWithTimeInterval:(NSString *)timeInterval;@end
#import "NSDate+extension.h"@implementation NSDate (extension)+ (NSString *)timeStringWithTimeInterval:(NSString *)timeInterval{    NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval.longLongValue/1000]; //此处根据项目需求,选择是否除以1000 , 如果时间戳精确到秒则去掉1000    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];    //今天    if ([date isToday]) {        formatter.dateFormat = @"HH:mm";        return [formatter stringFromDate:date];    }else{        //昨天        if ([date isYesterday]) {            formatter.dateFormat = @"昨天HH:mm";            return [formatter stringFromDate:date];            //一周内 [date weekdayStringFromDate]        }else if ([date isSameWeek]){            formatter.dateFormat = [NSString stringWithFormat:@"%@%@",[date weekdayStringFromDate],@"HH:mm"];            return [formatter stringFromDate:date];            //直接显示年月日        }else{            formatter.dateFormat = @"yy-MM-dd  HH:mm";            return [formatter stringFromDate:date];        }    }    return nil;}//是否在同一周- (BOOL)isSameWeek{    NSCalendar *calendar = [NSCalendar currentCalendar];    int unit = NSCalendarUnitWeekday | NSCalendarUnitMonth | NSCalendarUnitYear ;    //1.获得当前时间的 年月日    NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDate date]];    //2.获得self    NSDateComponents *selfCmps = [calendar components:unit fromDate:self];    return (selfCmps.year == nowCmps.year) && (selfCmps.month == nowCmps.month) && (selfCmps.day == nowCmps.day);}//根据日期求星期几- (NSString *)weekdayStringFromDate{    NSArray *weekdays = [NSArray arrayWithObjects: [NSNull null], @"星期天", @"星期一", @"星期二", @"星期三", @"星期四", @"星期五", @"星期六", nil];    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];    NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"Asia/Shanghai"];    [calendar setTimeZone: timeZone];    NSCalendarUnit calendarUnit = NSCalendarUnitWeekday;    NSDateComponents *theComponents = [calendar components:calendarUnit fromDate:self];    return [weekdays objectAtIndex:theComponents.weekday];}//是否为今天- (BOOL)isToday{    //now: 2015-09-05 11:23:00    //self 调用这个方法的对象本身    NSCalendar *calendar = [NSCalendar currentCalendar];    int unit = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear ;    //1.获得当前时间的 年月日    NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDate date]];    //2.获得self    NSDateComponents *selfCmps = [calendar components:unit fromDate:self];    return (selfCmps.year == nowCmps.year) && (selfCmps.month == nowCmps.month) && (selfCmps.day == nowCmps.day);}//是否为昨天- (BOOL)isYesterday{    //2014-05-01    NSDate *nowDate = [[NSDate date] dateWithYMD];    //2014-04-30    NSDate *selfDate = [self dateWithYMD];    //获得nowDate和selfDate的差距    NSCalendar *calendar = [NSCalendar currentCalendar];    NSDateComponents *cmps = [calendar components:NSCalendarUnitDay fromDate:selfDate toDate:nowDate options:0];    return cmps.day == 1;}//格式化- (NSDate *)dateWithYMD{    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];    fmt.dateFormat = @"yyyy-MM-dd";    NSString *selfStr = [fmt stringFromDate:self];    return [fmt dateFromString:selfStr];}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果手机打开qq太慢了怎么办 剪辑视频打开了软件关闭不了怎么办 玩永恒纪元手游网络老掉线怎么办 绝地求生买的钥匙激活码忘了怎么办 魅族手机移动网络打不开网页怎么办 小米5s升级后下载不了软件怎么办 电脑可以登qq却开不了网页怎么办 手机微信图片没下载原图怎么办 qq号密码忘了密保忘了怎么办 扣扣更改密保手机失败怎么办 至尊宝安全模式密保手机更换怎么办 微信号手机号换了密码忘记了怎么办 被加盟网店托管骗了怎么办 善林金融倒闭投资者的钱怎么办? 微信支付密码忘了怎么办没绑卡 美团外卖没有骑手接单怎么办 发微信的"发送"没有了怎么办 华硕电脑下面的任务栏卡住了怎么办 微信登别人电脑上忘记退了怎么办 买手机买全新结果买到翻新机怎么办 苹果手机激活锁忘了id账号怎么办 淘宝很多产品都需要3c怎么办 小米mix装在兜里还能解锁怎么办 痰咳不出来憋的嘴唇紫了怎么办 京东闪电退款后不给退货怎么办 我的中国银行卡在异地被冻结怎么办 qq密保号码换了验证不了怎么办 qq登陆需要密保手机验证怎么办 微信漂流瓶被投诉收不到回复怎么办 电视的屏幕出现三条黑线怎么办 付了定金的房子不想要了怎么办 顾客刚买了东西就退怎么办 飞机票买了但是没有报团怎么办 日本寄东西回来深圳海关扣了怎么办 xp框架安装模块后无限重启怎么办 手机百度云下载的文件不见了怎么办 百度云手机号换了文件不见了怎么办 好劵app提现密码忘了要怎么办 微信上买的衣服不给退货怎么办 在微信上买的衣服不给退货怎么办 贴贴纸的地方出现色差了怎么办