iOS 时间判断


/**

 1.今年

     1> 今天

     * 1分内: 刚刚

     * 1~59分内:xx分钟前

     * 大于60分钟:xx小时前

     

     2> 昨天

     * 昨天 xx:xx

     

     3> 其他

     * xx-xx xx:xx

 

 2.非今年

 1> xxxx-xx-xx xx:xx

 */

- (NSString *)created_at

{

    NSDateFormatter *fmt = [[NSDateFormatteralloc] init];

    // 如果是真机调试,转换这种欧美时间,需要设置locale

    fmt.locale = [[NSLocalealloc] initWithLocaleIdentifier:@"en_US"];

    /**   _created_at = @"Tue Sep 30 17:06:25 +0600 2014"; */


    // 设置日期格式(声明字符串里面每个数字和单词的含义)

    // E:星期几

    // M:月份

    // d:几号(这个月的第几天)

    // H:24小时制的小时

    // m:分钟

    // s:

    // y:

    fmt.dateFormat =@"EEE MMM dd HH:mm:ss Z yyyy";

//    _created_at = @"Tue Sep 30 17:06:25 +0600 2014";

    

    // 微博的创建日期

    NSDate *createDate = [fmt dateFromString:_created_at];

    // 当前时间

    NSDate *now = [NSDatedate];

    

    // 日历对象(方便比较两个日期之间的差距)

    NSCalendar *calendar = [NSCalendarcurrentCalendar];

    // NSCalendarUnit枚举代表想获得哪些差值

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

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

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

    

    if ([createDate isThisYear]) { // 今年

        if ([createDate isYesterday]) { // 昨天

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

            return [fmt stringFromDate:createDate];

        } else if ([createDateisToday]) { // 今天

            if (cmps.hour >=1) {

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

            } else if (cmps.minute >= 1) {

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

            } else {

                return @"刚刚";

            }

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

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

            return [fmt stringFromDate:createDate];

        }

    } else { // 非今年

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

        return [fmt stringFromDate:createDate];

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值