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枚举代表想获得哪些差值

   NSCalendarUnitunit =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];

    }

}


版权声明:本文为qq_27074387原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。