您的位置:首页 > 移动开发 > IOS开发

iOS 时间判断

2015-12-22 17:43 423 查看
/**

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

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: