美文网首页手机移动程序开发程序员
iOS NSDate 工具类 (时间比较,时间对象转化)

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

作者: LiYaoPeng | 来源:发表于2017-02-23 16:36 被阅读0次

    前言:

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

    导入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下载

    相关文章

      网友评论

        本文标题:iOS NSDate 工具类 (时间比较,时间对象转化)

        本文链接:https://www.haomeiwen.com/subject/lpvmwttx.html