博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NSDate分类-日期格式化以及日期常用判断
阅读量:4089 次
发布时间:2019-05-25

本文共 2742 字,大约阅读时间需要 9 分钟。

  • 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

转载地址:http://tfkii.baihongyu.com/

你可能感兴趣的文章
awk&sed 小实例
查看>>
类实现多个接口的例子
查看>>
Hadoop 3.1.0 在 Ubuntu 16.04 上安装时遇到的问题
查看>>
Thunder团队第六周 - Scrum会议5
查看>>
asp.net用一般处理程序做的验证码
查看>>
pip install 出现报asciii码错误的问题
查看>>
php面向对象的特点
查看>>
高级班:剪切蒙版在文字图层的运用
查看>>
markdown的基本使用<转>
查看>>
n多边形面积
查看>>
BaseAdapter的优化
查看>>
Spring 的IOC和DI
查看>>
xml格式文件读取(读取网站自定义配置文件)
查看>>
SU Demos-05Sorting Traces-02Demos
查看>>
Vector 二维数组 实现
查看>>
【剑指Offer】26、二叉搜索树与双向链表
查看>>
JavaScript面向对象
查看>>
一个带重试次数的curl 函数
查看>>
Oracle基本语法及例子
查看>>
JS基础知识梳理--setTimeout()&setInterval()
查看>>