转换显示聊天时间 根据用户12||24小时制区分星期、上午和下午


-(NSString*)addTime:(NSString*)timeStr

{

    NSString *formatStringForHours = [NSDateFormatter dateFormatFromTemplate:@"j" options:0 locale:[NSLocale currentLocale]];



    NSRangecontainsA = [formatStringForHoursrangeOfString:@"a"];



        BOOLhasAMPM = containsA.location!=NSNotFound;

       // NSLog(@"是否是12小时制--%d",hasAMPM);

        //hasAMPM==TURE为12小时制,否则为24小时制



    // 日期格式化类

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

    // 设置日期格式(y:年,M:月,d:日,H:时,m:分,s:秒)

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



    //    ATZt.AMSymbol = @"上午";

    //    ATZt.PMSymbol = @"下午";

    //    ATZt.dateFormat = @"yyyy-MM-dd aaa";



    // [yyyy-mm-dd] [hh:mm]

    NSArray*dateArr = [timeStrcomponentsSeparatedByString:@" "];

    //[yyyy,mm,dd]

    NSArray *preDateArr = [[dateArr firstObject] componentsSeparatedByString:@"-"];

    NSString*preDateStr;

    NSString*dateStr;

    if (preDateArr.count==3) {

        preDateStr = [NSStringstringWithFormat:@"%@年%@月%@日",

                      preDateArr[0],preDateArr[1],preDateArr[2]];

        dateStr = [NSStringstringWithFormat:@"%@月%@",

                   preDateArr[1],preDateArr[2]];

    }



    // 帖子的创建时间

    NSDate*create = [ATZtdateFromString:timeStr];



    if (create.isThisYear) {// 今年

        if (create.isToday) {// 今天



            if (hasAMPM) {  //12小时制

                NSDateComponents*cmps = [createdateComponets];

                if (cmps.hour<=5) {

                    ATZt.AMSymbol=@"凌晨";

                      ATZt.dateFormat=@"aaah:mm";

                }else if (cmps.hour<=12){

                    ATZt.AMSymbol=@"上午";

                    if (cmps.hour<10) {

                       ATZt.dateFormat=@"aaah:mm";

                    }else{

                         ATZt.dateFormat=@"aaahh:mm";

                    }

                }else {

                    ATZt.PMSymbol=@"下午";

                    if (cmps.hour%12<10) {

                        ATZt.dateFormat=@"aaah:mm";

                    }else{

                        ATZt.dateFormat=@"aaahh:mm";

                    }

                }



            }else {

                ATZt.dateFormat=@"HH:mm";

            }

            return [ATZtstringFromDate:create];



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

             if (hasAMPM) {

                 NSDateComponents*cmps = [createdateComponets];



                 if (cmps.hour<=5) {

                     ATZt.AMSymbol=@"凌晨";

                     ATZt.dateFormat=@"aaah:mm";

                 }else if (cmps.hour<=12){



                     ATZt.AMSymbol=@"上午";

                     if (cmps.hour<10) {

                         ATZt.dateFormat=@"aaah:mm";

                     }else{

                         ATZt.dateFormat=@"aaahh:mm";

                     }

                 }else {

                     ATZt.PMSymbol=@"下午";

                     if (cmps.hour%12<10) {

                         ATZt.dateFormat=@"昨天 aaah:mm";

                     }else{

                         ATZt.dateFormat=@"昨天 aaahh:mm";

                     }

                 }



             }else {

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

             }



            return [ATZtstringFromDate:create];

        }else if (create.isThisWeak){

            ATZt.weekdaySymbols = @[@"周日",@"周一",@"周二",@"周三",@"周四",@"周五",@"周六"];

            if (hasAMPM) {

                NSDateComponents*cmps = [createdateComponets];

                if (cmps.hour<=5) {

                    ATZt.AMSymbol=@"凌晨";

                    ATZt.dateFormat=@"EEEE aaah:mm";

                }else if (cmps.hour<=12){



                    ATZt.AMSymbol=@"上午";

                    if (cmps.hour<10) {

                        ATZt.dateFormat=@"EEEE aaah:mm";

                    }else{

                        ATZt.dateFormat=@"EEEE aaahh:mm";

                    }

                }else {

                    ATZt.PMSymbol=@"下午";

                    if (cmps.hour%12<10) {

                        ATZt.dateFormat=@"EEEE aaah:mm";

                    }else{

                        ATZt.dateFormat=@"EEEE aaahh:mm";

                    }

                }

            }else {

                ATZt.dateFormat=@"EEEE HH:mm";

            }



            return [ATZtstringFromDate:create];

        }else {// 其他



            if (hasAMPM) {

                NSDateComponents*cmps = [createdateComponets];



                if (cmps.hour<=5) {

                    ATZt.AMSymbol=@"凌晨";

                    ATZt.dateFormat=@"aaah:mm";

                }else if (cmps.hour<=12){



                    ATZt.AMSymbol=@"上午";

                    if (cmps.hour<10) {

                        ATZt.dateFormat=@"aaah:mm";

                    }else{

                        ATZt.dateFormat=@"aaahh:mm";

                    }

                }else {

                    ATZt.PMSymbol=@"下午";

                    if (cmps.hour%12<10) {



                        ATZt.dateFormat= [NSStringstringWithFormat:@"%@ aaah:mm ",dateStr];

                    }else{

                         ATZt.dateFormat= [NSStringstringWithFormat:@"%@ aaahh:mm ",dateStr];

                    }

                }



            }else {

               ATZt.dateFormat= [NSStringstringWithFormat:@"%@ HH:mm",dateStr];

            }



            return [ATZtstringFromDate:create];

        }

    } else {// 非今年

        if (hasAMPM) {

            NSDateComponents*cmps = [createdateComponets];



            if (cmps.hour<=5) {

                ATZt.AMSymbol=@"凌晨";

                ATZt.dateFormat=@"aaah:mm";

            }else if (cmps.hour<=12){



                ATZt.AMSymbol=@"上午";

                if (cmps.hour<10) {

                    ATZt.dateFormat=@"aaah:mm";

                }else{

                    ATZt.dateFormat=@"aaahh:mm";

                }

            }else {

                ATZt.PMSymbol=@"下午";

                if (cmps.hour%12<10) {



                    ATZt.dateFormat= [NSStringstringWithFormat:@"%@ aaah:mm ",preDateStr];

                }else{

                    ATZt.dateFormat= [NSStringstringWithFormat:@"%@ aaahh:mm ",preDateStr];

                }

            }



        }else {

          ATZt.dateFormat= [NSStringstringWithFormat:@"%@ HH:mm",preDateStr];

        }

        return [ATZtstringFromDate:create];

    }

}

你可能感兴趣的:(转换显示聊天时间 根据用户12||24小时制区分星期、上午和下午)