NSDate分类-日期格式化以及日期常用判断
来源:互联网 发布:app gps数据 运营商 编辑:程序博客网 时间:2024/06/05 04:41
- NSDate+LC.h
@interface NSDate (LC)/// 是否为今天- (BOOL)isToday;/// 是否为昨天- (BOOL)isYesterday;/// 是否为今年- (BOOL)isThisYear;/// 返回年月日- (NSDate *)dateWithYMD;/// 获得与当前时间的差距- (NSDateComponents *)deltaWithNow;/// 返回日期字符串- (NSString *)dateString;@end
- NSDate+LC.m
#import "NSDate+LC.h"@implementation NSDate (LC)/// 是否为今天- (BOOL)isToday{ 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{ NSDate *nowDate = [[NSDate date] dateWithYMD]; 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];}/// 是否为今年- (BOOL)isThisYear{ NSCalendar *calendar = [NSCalendar currentCalendar]; int unit = NSCalendarUnitYear; // 1.获得当前时间的年月日 NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDate date]]; // 2.获得self的年月日 NSDateComponents *selfCmps = [calendar components:unit fromDate:self]; return nowCmps.year == selfCmps.year;}- (NSDateComponents *)deltaWithNow{ NSCalendar *calendar = [NSCalendar currentCalendar]; int unit = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond; return [calendar components:unit fromDate:self toDate:[NSDate date] options:0];}- (NSString *)dateString{ NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; //判断时间 和 现在时间 的差距 if (self.isToday) { // 今天 if (self.deltaWithNow.hour >= 1) { return [NSString stringWithFormat:@"%d小时前", (int)self.deltaWithNow.hour]; } else if (self.deltaWithNow.minute >= 1) { return [NSString stringWithFormat:@"%d分钟前", (int)self.deltaWithNow.minute]; } else { return @"刚刚"; } } else if (self.isYesterday) { // 昨天 fmt.dateFormat = @"昨天 HH:mm"; return [fmt stringFromDate:self]; } else if (self.isThisYear) { // 今年(至少是前天) fmt.dateFormat = @"MM-dd HH:mm"; return [fmt stringFromDate:self]; } else { // 非今年 fmt.dateFormat = @"yyyy-MM-dd HH:mm"; return [fmt stringFromDate:self]; }}@end
0 0
- NSDate分类-日期格式化以及日期常用判断
- NSDate格式化日期对象
- NSDate格式化日期
- 格式化新浪微博日期成NSDate
- NSDate --- 日期
- NSDate日期
- sqlserver 常用日期格式化
- OC视频笔记4.6(NSDate常用方法)4.7(日期格式化的使用)
- NSDate 判断日期是今天还是昨天
- Struts2的日期格式化以及日期插件
- C# 日期大小比较以及日期格式化
- js获取日期以及日期格式化
- iOS 日期(NSDate)的常用操作总结
- Java日期格式化常用方法
- ORACLE常用日期格式化方式
- 时间,日期格式化以及 格式化时间戳
- NSDate 判断指定的日期为今天,明天,还是昨天。
- OC基础使用(十 NSDate 时间日期 及 NSDateFormatter 日期格式化类)
- Python安装
- Java EE - Spring MVC 数据绑定实例
- poj1094 Sorting it all out(拓扑排序)
- 160923基础小结
- 07:可变长数组、多维数组
- NSDate分类-日期格式化以及日期常用判断
- 求字符串中连续数字的最长字符串
- [翻译]Why you don’t want to shard
- 设计模式_工厂方法模式(Java)
- 第一次查阅国外网站
- day15 python css
- IO流的学习流程
- 怎样学习图像处理技术?(三)
- 很多好android干货