zoukankan      html  css  js  c++  java
  • NSDate 刚刚、几分钟、几小时

    - (NSString *)minutesAgo {

        NSDateFormatter *fmt = [[NSDateFormatter alloc] init];

        fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";

        NSDate *createdDate = [fmt dateFromString:self];

        

        // 判断发送时间 和 现在时间 的差距

        if (createdDate.isToday) { // 今天

            if (createdDate.deltaWithNow.hour >= 1) {

                fmt.dateFormat = @"HH:mm";

                return [fmt stringFromDate:createdDate];

            } else if (createdDate.deltaWithNow.minute >= 1) {

                return [NSString stringWithFormat:@"%ld分钟前", (long)createdDate.deltaWithNow.minute];

            } else {

                return @"刚刚";

            }

        } else if (createdDate.isYesterday) { // 昨天

            fmt.dateFormat = @"昨天 HH:mm";

            return [fmt stringFromDate:createdDate];

        } else if (createdDate.isThisYear) { // 今年(至少是前天)

            fmt.dateFormat = @"MM-dd HH:mm";

            return [fmt stringFromDate:createdDate];

        } else {// 非今年

            fmt.dateFormat = @"yyyy-MM-dd HH:mm";

            return [fmt stringFromDate:createdDate];

        }

    }

    #pragma mark Comparing Dates

    - (BOOL) isEqualToDateIgnoringTime: (NSDate *) aDate

    {

    NSDateComponents *components1 = [CURRENT_CALENDAR components:DATE_COMPONENTS fromDate:self];

    NSDateComponents *components2 = [CURRENT_CALENDAR components:DATE_COMPONENTS fromDate:aDate];

    return ((components1.year == components2.year) &&

    (components1.month == components2.month) &&

    (components1.day == components2.day));

    }

    - (BOOL) isToday

    {

    return [self isEqualToDateIgnoringTime:[NSDate date]];

    }

    - (BOOL) isYesterday

    {

    return [self isEqualToDateIgnoringTime:[NSDate dateYesterday]];

    }

    /**

     *  获得与当前时间的差距

     */

    - (NSDateComponents *)deltaWithNow {

        NSCalendar *calendar = [NSCalendar currentCalendar];

        int unit = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;

        return [calendar components:unit fromDate:self toDate:[NSDate date] options:0];

    }

    /**

     *  是否为今年

     */

    - (BOOL)isThisYear {

        NSCalendar *calendar = [NSCalendar currentCalendar];

        int unit = NSCalendarUnitYear;

        

        // 获得当前时间的年月日

        NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDate date]];

        

        // 获得self的年月日

        NSDateComponents *selfCmps = [calendar components:unit fromDate:self];

        

        return nowCmps.year == selfCmps.year;

    }

  • 相关阅读:
    Hibernate关系映射(一) 基于外键的单向一对一
    Hibernate开发环境搭建
    Java创建和读取Json
    Json 简易教程
    jQuery Validate验证框架详解
    asp.net Core 3.1配置log4net
    HTTP 错误 500.21
    SQL中数据库 无法访问,并且数据库的属性中 使用人数、大小、可用空间全是不可用
    What is a CGFloat?
    Swift中的CGPoint ,CGSize 、CGRect、CGFloat
  • 原文地址:https://www.cnblogs.com/chenzq12/p/6252103.html
Copyright © 2011-2022 走看看