手机移动程序开发程序员

iOS NSDate 工具类 (时间比较,时间对象转化)

2017-02-23  本文已影响0人  LiYaoPeng

前言:

最重要的,时间的总结,在这里
工作中遇到了时间转化成字符串(时间差转成字符串)并显示,于是写了一个工具类,在此与大家分享,如果感觉还方便,请点个赞~

导入pod 'PYHandlerDate_Swfit'

设计模式:

考虑到了要多次使用这个类,而且初始化NSDateFormatte 会比较耗时,所以采用了单利模式。

//单利
+ (instancetype) sharedHandleDate;

参数说明:

1. NSObject对象 参数

  1. NSString 你可以传一个字符串,但是这个字符串必须是以下两种类型
NSString dateFormatter
@"2017-9-29 0:0:00” @"yyyy-MM-dd HH:mm:ss”
@“2017 : 2 : 2” @“yyyy : MM : dd”
@“123456” @"yyyy-MM-dd HH:mm:ss”
@“2017年12月12日” @“yyyy年MM月dd日”
注意 传入对象的分隔符一定要与DateFormatte的分隔符一至

2.NSNumber (这个没有要求传入@(1231234) dateFormatte可以是任意)


方法说明:

1.对象转化成时间

/**
 * 关于对象转化成对象的方法
 * date_OBJ: 一个对象
 * 如果 转化失败,那么返回nil,并打印无法转化
 */
- (NSDate *)returnDateWithOBJ: (NSObject *)date_OBJ andDateFormatter: (NSString *)dateFormatterStr;

2 .比较早晚

1.比较早晚 返回bool值

/**
 * 关于时间与当前时间 比较早晚 的方法
 * date_OBJ : 传入一个字符串或者时间对象
 */
- (BOOL)isLateCurrentDateWithDate: (NSObject *)date_OBJ andDateForMatter: (NSString *)dateForMatter andIsDateStr: (BOOL)isDateStr;

2.返回NSDate对象

/**返回较晚的时间*/
+ (NSDate *)laterDateWithData: (NSObject *)date andOtherDate: (NSObject *)otherDate andCompareType: (PYHandleCompareType)compareType;

3.时间拆分成 年、月、日..并返回

对象分隔成年月日时分秒 用block进行参数的返回

/**
 * 传入一个对象 获取对应的时间
 * date 对象(将被转化成时间对象)
 * dateFormatter 时间格式
 * dateBlock 转化成时间后的年月日
 */
#pragma mark - 获取时间的年月日
- (void)getDate: (NSObject *)getDate andDateFormatter: (NSString *)dateFormatter andDateBlock: (void(^)(NSInteger year, NSInteger month, NSInteger day, NSInteger hour,NSInteger minute, NSInteger second))dateBlock;

4.时间比较,拆分成 年、月、日…并返回

/**
 * 关于两个时间差的方法
 * CompareDate: 比较的 第一个时间
 * forcedCompareDate: 比较的第二个时间
 * block返回的是第一个时间 减去第二个时间
 * 返回值是 差的时间;
 */
#pragma mark - 两个时间相比的差值
- (NSString *)compareDateWithandDateFormatter: (NSString *)dateFormatterStr andCompareDate: (NSObject *)startTime andSecondCompareDate: (NSString *)endTime andDateBlock: (void(^)(NSInteger year, NSInteger month, NSInteger day, NSInteger hour,NSInteger minute, NSInteger second))dateBlock;

点击这里github下载

上一篇下一篇

猜你喜欢

热点阅读