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
- iOS - NSDate分类-判断时间是否为今天,昨天,一周内,年月日
- NSDate的一个分类,判断是否是今天,昨天,今年,获得与当前时间的差距,返回一个只有年月日的日期
- NSDate 判断指定的日期为今天,明天,还是昨天。
- 判断是否为今年、是否为今天、是否为昨天,比较当前时间和from时间的差值
- 判断是否为今年、是否为今天、是否为昨天,比较当前时间和from时间的差值
- iOS 判断时间(昨天,今天,明天)
- 判断时间是否为今天
- ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段内。
- ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段内。
- ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段内
- ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段内。
- ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段内。
- ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段内。
- NSDate 判断日期是今天还是昨天
- 时间计算,返回今天昨天明天,年月日
- Android 判断获取的时间是否是今天、昨天
- IOS——NSDate昨天、今天、明天
- Java 判断一个日期 是否为 今天、昨天
- SQL SERVER 2008 表增加字段无法保存
- python3错误 之NameError: name 'cookielib' is not defined
- AspectJ中的JoinPoint方法概要
- Android-->RecyclerView模仿探探左右滑动布局
- LA 6398 Low Power
- iOS - NSDate分类-判断时间是否为今天,昨天,一周内,年月日
- c标准文件io函数的原型和注意点
- 企业想要制作电商类App软件
- [AHK]一键给当前选中文件名加上日期(V1.6版本)
- 【暂更】分享亲测有效的那些实用「神器」!(网站/软件/小技巧)
- hadoop常用配置参数
- Android6.0运行时权限
- AsyncTask下载图片
- JavaScript风格指南