zoukankan      html  css  js  c++  java
  • 时间格式

    /**

     1.今年

     1> 今天

     * 1分内: 刚刚

     * 1分~59分内:xx分钟前

     * 大于60分钟:xx小时前

     2> 昨天

     * 昨天 xx:xx

     3> 其他

     * xx-xx xx:xx

     2.非今年

     1> xxxx-xx-xx xx:xx

     */

    -(NSString *)createtime{

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

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

        

        NSDate *CreateDate = [format dateFromString:_createtime];

        

        // 现在时间

        NSDate *now = [NSDate date];

        

        NSCalendar *calendar = [NSCalendar currentCalendar];

        NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;

        // 计算两个日期之间的差值

        NSDateComponents *cmps = [calendar components:unit fromDate:CreateDate toDate:now options:0];

        

        if ([self isThisYear:CreateDate]) {  // 今年

            if ([self isYesterday:CreateDate]) {  // 昨天

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

                return [format stringFromDate:CreateDate];

            }else if([self isToday:CreateDate]){  // 今天

                if (cmps.hour >= 1) {  // xx小时前

                    return [NSString stringWithFormat:@"%d小时前",(int)cmps.hour];

                }else if(cmps.minute >= 1){  // 信息分钟前

                    return [NSString stringWithFormat:@"%d分钟前",(int)cmps.minute];

                }else{// 刚刚

                    return @"刚刚";

                }

            }else{// 今年的其他日子

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

                return [format stringFromDate:CreateDate];

            }

        }else{// 非今年

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

            return [format stringFromDate:CreateDate];

        }

        

        return _createtime;

    }

    - (BOOL)isThisYear:(NSDate *)date{

        

        NSCalendar *calendar = [NSCalendar currentCalendar];

        

        NSDateComponents *createDate = [calendar components:NSCalendarUnitYear fromDate:date];

        NSDateComponents *currentDate = [calendar components:NSCalendarUnitYear fromDate:[NSDate date]];

        

        return createDate.year == currentDate.year;

    }

    - (BOOL)isYesterday:(NSDate *)date{

        

        NSDate *now = [NSDate date];

        

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

        format.dateFormat = @"yyyy-MM-dd";

        

        //将时间转换为字符串(去掉时分秒)

        NSString *createStr = [format stringFromDate:date];

        NSString *currentStr = [format stringFromDate:now];

        

        // 将时间字符串转化为NSDate

        date = [format dateFromString:createStr];

        now = [format dateFromString:currentStr];

        

        NSCalendar *calendar = [NSCalendar currentCalendar];

        NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;

        // 计算两个日期之间的差值

        NSDateComponents *cmps = [calendar components:unit fromDate:date toDate:now options:0];

        

        return cmps.year == 0 && cmps.month == 0 && cmps.day == 1;

    }

    - (BOOL)isToday:(NSDate *)date{

        

        NSDate *now = [NSDate date];

        

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

        format.dateFormat = @"yyyy-MM-dd";

        

        //将时间转换为字符串(去掉时分秒)

        NSString *createStr = [format stringFromDate:date];

        NSString *currentStr = [format stringFromDate:now];

        

        return [createStr isEqualToString:currentStr];

    }

  • 相关阅读:
    C# 通过 probing 指定 dll 寻找文件夹
    C# 通过 probing 指定 dll 寻找文件夹
    WPF 一个性能比较好的 gif 解析库
    WPF 一个性能比较好的 gif 解析库
    PowerShell 通过 WMI 获取系统安装的驱动
    PowerShell 通过 WMI 获取系统安装的驱动
    win10 uwp 好看的时间选择控件
    PHP ftp_ssl_connect() 函数
    PHP ftp_size() 函数
    PHP ftp_site() 函数
  • 原文地址:https://www.cnblogs.com/jiqiaochun/p/5121060.html
Copyright © 2011-2022 走看看